Django adalah framework web berbasis Python yang sangat populer karena kemudahan penggunaannya dan banyaknya fitur canggih yang tersedia. Salah satu hal penting dalam pengembangan aplikasi web adalah melakukan operasi CRUD (Create, Read, Update, Delete) pada data yang disimpan dalam database. Django secara default menggunakan SQLite sebagai database, namun Anda bisa mengonfigurasi Django untuk menggunakan sistem manajemen basis data lainnya, seperti PostgreSQL, yang lebih kuat dan cocok untuk aplikasi skala besar.
Pada artikel ini, kita akan membahas cara mengonfigurasi Django untuk menggunakan PostgreSQL dan bagaimana melakukan operasi CRUD menggunakan PostgreSQL.
1. Persiapan Lingkungan Pengembangan
Sebelum mulai, pastikan Anda sudah menyiapkan lingkungan pengembangan dengan beberapa alat berikut:
- Python (versi 3.6 atau lebih baru)
- PostgreSQL sebagai sistem manajemen basis data
- Django versi 3.x atau lebih baru
- psycopg2 (library Python untuk koneksi ke PostgreSQL)
1.1. Menginstal PostgreSQL dan psycopg2
Jika Anda belum menginstal PostgreSQL, Anda bisa mengunduh dan menginstalnya dari situs resmi PostgreSQL. Setelah PostgreSQL terinstal, Anda perlu menginstal library Python yang memungkinkan Django berkomunikasi dengan PostgreSQL, yaitu psycopg2.
Untuk menginstal psycopg2, jalankan perintah berikut di terminal:
pip install psycopg2
Jika Anda menggunakan sistem operasi Windows dan menghadapi kesulitan dalam instalasi, Anda bisa menggunakan psycopg2-binary, yang merupakan versi precompiled dari psycopg2:
pip install psycopg2-binary
2. Mengonfigurasi Django untuk Menggunakan PostgreSQL
Setelah Anda menginstal PostgreSQL dan psycopg2, langkah berikutnya adalah mengonfigurasi Django untuk menggunakan PostgreSQL sebagai database.
2.1. Membuat Database PostgreSQL
Langkah pertama adalah membuat database di PostgreSQL yang akan digunakan oleh Django. Anda bisa melakukannya menggunakan antarmuka manajemen seperti pgAdmin atau terminal PostgreSQL.
-
Masuk ke PostgreSQL:
sudo -u postgres psql
-
Buat database baru untuk proyek Django Anda:
CREATE DATABASE mydb;
-
Buat pengguna dan beri hak akses ke database tersebut:
CREATE USER django_user WITH PASSWORD 'password123'; GRANT ALL PRIVILEGES ON DATABASE mydb TO django_user; \q
2.2. Mengonfigurasi Database Django
Setelah Anda membuat database PostgreSQL, sekarang kita akan mengonfigurasi Django untuk terhubung ke PostgreSQL. Buka file settings.py
yang ada di dalam folder proyek Django Anda. Temukan bagian DATABASES dan ubah pengaturannya menjadi seperti berikut:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydb', # Nama database yang telah Anda buat
'USER': 'django_user', # Nama pengguna PostgreSQL
'PASSWORD': 'password123', # Password untuk pengguna PostgreSQL
'HOST': 'localhost',
'PORT': '5432', # Port default PostgreSQL
}
}
Dengan pengaturan ini, Django akan menggunakan psycopg2 untuk menghubungkan aplikasi dengan PostgreSQL.
3. Membuat Model untuk Operasi CRUD
Setelah mengonfigurasi database, langkah berikutnya adalah membuat model yang mewakili data yang ingin Anda 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 seperti berikut:
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 ini memiliki beberapa kolom:
name
: Nama penggunaemail
: Alamat email pengguna yang unikphone
: Nomor telepon penggunacreated_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.
4.1. Membuat Migrasi
Jalankan perintah berikut untuk membuat file migrasi yang menggambarkan perubahan yang telah Anda buat pada model:
python manage.py makemigrations
4.2. Menjalankan Migrasi
Setelah migrasi dibuat, jalankan perintah berikut untuk menerapkannya ke database:
python manage.py migrate
Perintah ini akan membuat tabel User di dalam database PostgreSQL sesuai dengan model yang telah Anda buat.
5. Membuat View untuk Operasi CRUD
Sekarang, 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 PostgreSQL. Anda dapat menambahkan, mengedit, menghapus, dan menampilkan data pengguna menggunakan PostgreSQL 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.