Django adalah salah satu framework web berbasis Python yang sangat populer karena kemudahan penggunaannya dan fitur-fitur canggih yang dimilikinya. Salah satu fitur utama dalam aplikasi web adalah kemampuan untuk melakukan operasi CRUD (Create, Read, Update, Delete) terhadap data yang disimpan dalam database. Django secara default menggunakan SQLite sebagai database, namun sangat mudah untuk mengonfigurasi Django agar menggunakan database lain seperti MySQL. Dalam artikel ini, kita akan mempelajari cara mengonfigurasi Django untuk menggunakan MySQL dan bagaimana melakukan operasi CRUD menggunakan MySQL.
1. Persiapan Lingkungan Pengembangan
Sebelum mulai, pastikan Anda sudah menyiapkan lingkungan pengembangan dengan beberapa alat berikut:
- Python (versi 3.6 atau lebih baru)
- MySQL sebagai sistem manajemen basis data
- Django versi 3.x atau lebih baru
- MySQLclient (library Python untuk koneksi ke MySQL)
1.1. Menginstal MySQL dan MySQLclient
Jika Anda belum menginstal MySQL di sistem Anda, Anda bisa mengunduh dan menginstalnya dari situs resmi MySQL. Setelah itu, Anda perlu menginstal library Python yang memungkinkan Django untuk berkomunikasi dengan MySQL, yaitu mysqlclient.
Untuk menginstal mysqlclient, jalankan perintah berikut di terminal:
pip install mysqlclient
Jika Anda menggunakan Windows dan mengalami kesulitan dalam menginstal mysqlclient, Anda bisa mencoba menggunakan PyMySQL, yang lebih mudah diinstal di Windows. Untuk menggunakan PyMySQL, jalankan:
pip install pymysql
Dan di dalam file __init__.py
di folder proyek Django Anda, tambahkan kode berikut untuk mengonfigurasi Django menggunakan PyMySQL:
import pymysql
pymysql.install_as_MySQLdb()
2. Mengonfigurasi Django untuk Menggunakan MySQL
Setelah Anda menginstal MySQL dan mysqlclient, langkah berikutnya adalah mengonfigurasi Django agar menggunakan MySQL sebagai database.
2.1. Membuat Database MySQL
Langkah pertama adalah membuat database di MySQL yang akan digunakan oleh Django. Anda dapat menggunakan alat manajemen seperti phpMyAdmin, MySQL Workbench, atau terminal MySQL untuk membuat database baru.
-
Masuk ke MySQL:
mysql -u root -p
-
Buat database baru untuk proyek Django:
CREATE DATABASE mydb;
-
Buat pengguna dan beri hak akses untuk database tersebut:
CREATE USER 'django_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON mydb.* TO 'django_user'@'localhost'; FLUSH PRIVILEGES;
2.2. Mengonfigurasi Database Django
Selanjutnya, Anda perlu mengonfigurasi Django untuk menggunakan MySQL. Buka file settings.py
yang ada di dalam folder proyek Django Anda. Cari bagian yang mengonfigurasi DATABASES dan ubah pengaturannya menjadi seperti berikut:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb', # Nama database yang telah Anda buat
'USER': 'django_user', # Nama pengguna MySQL
'PASSWORD': 'password', # Password untuk pengguna MySQL
'HOST': 'localhost',
'PORT': '3306', # Port default MySQL
}
}
Jika Anda menggunakan PyMySQL sebagai pengganti mysqlclient, pastikan Anda telah menambahkan kode di atas seperti yang sudah dijelaskan sebelumnya.
3. Membuat Model untuk Operasi CRUD
Setelah mengonfigurasi database, kita akan membuat model yang mewakili data yang ingin kita simpan di dalam database. Dalam contoh ini, kita akan membuat model User
yang menyimpan informasi pengguna, seperti nama, email, dan nomor telepon.
3.1. Membuat Model User
Buka file models.py
di aplikasi Django Anda dan buat model User
:
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(unique=True)
phone = models.CharField(max_length=15)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
Model di atas memiliki beberapa kolom:
name
: Nama pengguna.email
: Alamat email pengguna, yang harus unik.phone
: Nomor telepon pengguna.created_at
: Waktu pembuatan data, yang otomatis diisi dengan waktu saat data dibuat.
4. Melakukan Migrasi Database
Setelah membuat model, langkah selanjutnya adalah menjalankan migrasi untuk membuat tabel di database sesuai dengan model yang telah Anda buat.
Jalankan perintah berikut di terminal untuk membuat migrasi:
python manage.py makemigrations
Setelah itu, jalankan migrasi untuk menerapkan perubahan ke database:
python manage.py migrate
Perintah ini akan membuat tabel user
di database MySQL yang telah Anda konfigurasi sebelumnya.
5. Membuat View untuk Operasi CRUD
Selanjutnya, kita akan membuat tampilan (view) untuk menangani permintaan CRUD dari pengguna. Django menggunakan views untuk menangani logika aplikasi dan templates untuk menampilkan data.
5.1. Membuat View untuk CRUD
Buka file views.py
di dalam aplikasi Django Anda dan buat fungsi untuk operasi CRUD.
from django.shortcuts import render, redirect, get_object_or_404
from .models import User
from .forms import UserForm
# Create
def create_user(request):
if request.method == 'POST':
form = UserForm(request.POST)
if form.is_valid():
form.save()
return redirect('user_list')
else:
form = UserForm()
return render(request, 'user/create.html', {'form': form})
# Read
def user_list(request):
users = User.objects.all()
return render(request, 'user/user_list.html', {'users': users})
# Update
def update_user(request, user_id):
user = get_object_or_404(User, id=user_id)
if request.method == 'POST':
form = UserForm(request.POST, instance=user)
if form.is_valid():
form.save()
return redirect('user_list')
else:
form = UserForm(instance=user)
return render(request, 'user/update.html', {'form': form})
# Delete
def delete_user(request, user_id):
user = get_object_or_404(User, id=user_id)
if request.method == 'POST':
user.delete()
return redirect('user_list')
return render(request, 'user/delete.html', {'user': user})
Fungsi-fungsi di atas adalah:
create_user
: Menangani pembuatan pengguna baru.user_list
: Menampilkan daftar semua pengguna.update_user
: Mengedit data pengguna berdasarkan ID.delete_user
: Menghapus pengguna berdasarkan ID.
6. Membuat Form untuk Menangani Input Data
Django menyediakan forms untuk memudahkan proses pengambilan dan validasi data dari pengguna. Untuk membuat form input data pengguna, buat file forms.py
di dalam aplikasi Anda.
6.1. Membuat Form UserForm
from django import forms
from .models import User
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ['name', 'email', 'phone']
Form ini akan digunakan untuk menangani input data pengguna saat membuat atau mengedit pengguna.
7. Membuat Template untuk Tampilan
Sekarang kita akan membuat template untuk menampilkan dan mengelola data pengguna. Template-templat ini akan diletakkan di dalam folder templates/user/
.
7.1. Template user_list.html
(Menampilkan Daftar Pengguna)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Daftar Pengguna</title>
</head>
<body>
Daftar Pengguna
Tambah Pengguna Baru
</body>
</html>
7.2. Template create.html
(Form Tambah Pengguna)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tambah Pengguna</title>
</head>
<body>
Tambah Pengguna Baru
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Tambah</button>
</form>
</body>
</html>
7
.3. Template update.html
(Form Edit Pengguna)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Edit Pengguna</title>
</head>
<body>
Edit Pengguna
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Perbarui</button>
</form>
</body>
</html>
7.4. Template delete.html
(Konfirmasi Hapus Pengguna)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hapus Pengguna</title>
</head>
<body>
Apakah Anda yakin ingin menghapus pengguna {{ user.name }}?
<form method="post">
{% csrf_token %}
<button type="submit">Ya, Hapus</button>
</form>
</body>
</html>
8. Menambahkan URL ke dalam urls.py
Terakhir, kita perlu menambahkan URL yang mengarah ke view CRUD yang telah kita buat. Buka file urls.py
dan tambahkan URL berikut:
from django.urls import path
from . import views
urlpatterns = [
path('', views.user_list, name='user_list'),
path('create/', views.create_user, name='create_user'),
path('update//', views.update_user, name='update_user'),
path('delete//', views.delete_user, name='delete_user'),
]
9. Kesimpulan
Dengan mengikuti langkah-langkah di atas, Anda telah berhasil membuat aplikasi CRUD dengan Django menggunakan MySQL. Anda dapat menambahkan, mengedit, menghapus, dan menampilkan data pengguna menggunakan MySQL sebagai database. Django mempermudah pengelolaan data dengan menyediakan model, form, dan view yang sangat mudah digunakan. Anda juga bisa mengembangkan aplikasi ini lebih lanjut dengan menambahkan fitur seperti validasi data, pagination, dan autentikasi pengguna.
Georgia Reader Reply
Et rerum totam nisi. Molestiae vel quam dolorum vel voluptatem et et. Est ad aut sapiente quis molestiae est qui cum soluta. Vero aut rerum vel. Rerum quos laboriosam placeat ex qui. Sint qui facilis et.