CRUD Rest API di Framework Python Django dengan database MySQL Linux Server


Assalamualaikum Wr.Wb....

Berikut contoh lengkap CRUD Post Product REST API menggunakan
Django REST Framework dengan database MySQL, termasuk :

- CRUD Product
- Upload image & PDF
- Pagination
- Keamanan upload (anti webshell / file berbahaya)
- Mitigasi RCE, LFI, XSS, SQLi
- Struktur folder dan Struktur tabel MySQL
- Contoh .env

Struktur Project :

project/
├── core/
├── product/
├── media/
├── manage.py
└── .env

Requirement

pip install django djangorestframework mysqlclient python-dotenv pillow python-magic bleach

Setup Virtual Environment

python -m venv venv
source venv/bin/activate

Di VSCode pastikan pilih interpreter : venv/bin/python

File .env, buat .env di root project :

DEBUG=True
SECRET_KEY=GENERATE_SENDIRI

DB_NAME=product_db
DB_USER=root
DB_PASSWORD=
DB_HOST=127.0.0.1
DB_PORT=3306

ALLOWED_HOSTS=127.0.0.1,localhost
PORT=8000

Generate SECRET_KEY :

python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"

Setup Database di mysql

CREATE DATABASE product_db;

Migrasi database

python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

Menjalankan Server

python manage.py runserver

Buka di browser atau tes dengan tools postman atau lain nya :

http://127.0.0.1:8000/api/products/

Endpoint API

  Method   Endpoint              Deskripsi
  -------- --------------------- -------------------
  GET      /api/products/        List + Pagination
  POST     /api/products/        Create Product
  GET      /api/products/{id}/   Detail
  PUT      /api/products/{id}/   Update
  DELETE   /api/products/{id}/   Delete

Pagination:

/api/products/?page=2

Selengkap nya Source code bisa kalian pelajari di repository github
yang saya buat : [disini]


sekian dan semoga bermanfaat...

Wasalamualaikum Wr.Wb...

Post a Comment

0 Comments