Konsep Dasar Django
Django menggunakan pola arsitektur MVT (Model-View-Template) yang merupakan variasi dari MVC (Model-View-Controller). Mari kita bahas konsep dasarnya:
Arsitektur MVT Django
1. Model
- Bertanggung jawab untuk data dan logika bisnis
- Merepresentasikan struktur database dalam bentuk class Python
- Contoh sederhana:
# models.py
class Produk(models.Model):
nama = models.CharField(max_length=100)
harga = models.IntegerField()
2. View
- Menangani logika tampilan dan request handling
- Menerima request HTTP dan mengembalikan response
- Contoh sederhana:
# views.py
def daftar_produk(request):
produk = Produk.objects.all()
return render(request, 'produk/daftar.html', {'produk': produk})
3. Template
- Mengatur bagaimana data ditampilkan ke user
- File HTML dengan sintaks template Django
- Contoh sederhana:
<!-- daftar.html -->
<h1>Daftar Produk</h1>
{% for item in produk %}
<p>{{ item.nama }} - Rp{{ item.harga }}</p>
{% endfor %}
Contoh Kasus Sederhana
Misalkan kita membuat aplikasi toko online sederhana:
-
Model: Menyimpan data produk
- Nama produk
- Harga
- Deskripsi
- Stok
-
View: Menangani operasi
- Menampilkan daftar produk
- Menambah produk baru
- Mengupdate stok
- Proses pembelian
-
Template: Tampilan untuk user
- Halaman daftar produk
- Form tambah produk
- Halaman detail produk
- Halaman keranjang belanja
Fitur Utama Django
-
URL Routing
- Mengatur pemetaan URL ke View
- Contoh:
/produk/
mengarah ke halaman daftar produk
-
Admin Interface
- Panel admin bawaan untuk mengelola data
- Dapat dikustomisasi sesuai kebutuhan
-
Forms
- Pembuatan dan validasi form
- Menghandle input user dengan aman
-
Authentication
- Sistem login/logout bawaan
- Manajemen user dan permission
-
ORM (Object-Relational Mapping)
- Query database menggunakan Python
- Tidak perlu menulis SQL langsung
Flow Request di Django
- User mengakses URL (misal: www.tokomu.com/produk (opens in a new tab))
- URL dikonfigurasi di urls.py
- Request diarahkan ke View yang sesuai
- View mengambil data dari Model jika diperlukan
- View merender Template dengan data
- Response HTML dikirim ke user
Ini adalah konsep dasar Django yang perlu dipahami sebelum mulai membuat aplikasi. Setiap komponen bekerja sama untuk membuat aplikasi web yang terstruktur dan maintainable.