- Ketika user mengakses suatu web-application, user mengirimkan HTTP Request ke server
- urls.py menangkap request yang dikirim oleh user kemudian menghubungkannya ke view yang bersesuaian dengan request URL. urls.py juga mampu mencocokkan pola string maupun digit tertentu yang muncul pada URL dan mengantarkannya menuju view function sebagai data.
- views.py berperan sebagai fungsi yang melakukan request handler yang menerima HTTP request kemudian me-return HTTP respose. view dapat mengakses data yang dibutuhkan untuk memenuhi request melalui models dan menyerahkan format dari response ke templates yang telah tersedia
- Models merupakan python object yang mendefinisikan struktur data dari suatu applikasi dan menyediakan mekanisme untuk mengatur (add, modify, delet) dan memaasukkan query kedalam database
- Template merupakan file teks yang mendefinisikan struktur maupun tampilan dari suatu file seperti halaman HTML dengan placeholder yang dapat digunakan untuk merepresentasikan konten yang sebenarnya. View dapat membuat halaman HTML secara dinamis menggunakan HTML template dan mengisinya dengan data dari model. Template juga dapat digunakan untuk mendefinisikan struktur dari file berjenis apapun tidak hanya HTML saja.
Ketika sedang mengembangkan suatu aplikasi Python, pendekatan yang biasa digunakan adalah dengan menginstall Python, menginstall seluruh library yand diperlukan melalui terminal, menulis semua code dalam satu file .py kemudian menjalankan program python tersebut melalui terminal. Hal tersebut merupakan pendekatan paling umum yang biasanya digunakan oleh pemula. Pendekatan seperti tadi akan berjalan sempurna pada project yang berskala kecil. Namun, saat akan mengembangkan software yang kompleks, kita akan berurusan dengan banyak sekali file, packages, dan dependensi. Akibatnya, kita harus mengisolasi python environtment hanya untuk project tertentu saja. Penggunaan virtual environtment dapat menghidarkan kita dari error yang muncul akibat perbedaan versi dan jenis dependensi yang dibutuhkan untuk project yang berbeda. Virtual environtment berguna untuk mengisolasi python yang kita gunakan untuk membangun suatu project dengan python yang terinstall secara global pada system. Hal tersebut memberikan kita kontrol penuh atas project yang sedang berjalan dan membuatnnya mudah untuk dirpoduksi.
Penggunaan virtual environtment pada saat mengembangkan aplikasi web berbasis Django tidak wajib dilakukan. Namun, seperti yang sudah dijelaskan di atas, proses pengembangan aplikasi web berbasi Django yang tidak menggunakan virtual environtment akan menyusahkan para pengembang dikemudian hari seiring dengan semakin membesarnya ukuran suatu proyek. Jika kita sedang membangun beberapa aplilkasi berbasis Django secara bersamaan namun hanya menggunakan python yang terinstal secara global pada system maka akan sangat memungkinkan timbul adanya error yang tidak diinginkan. Error tersebut bisa saja muncul karena disebabkan oleh perbedaan versi dan jenis dependensi yang dibutuhkan pada setiap proyek yang sedang dikerjakan. Kesimpulannya, penggunaan virtual environtment sangat dianjurkan pada saat mengembangkan aplikasi berbasi Django agar dapat memudahkan proses pengembangannya.
- Pada views.py yang berada pada folder aplikasi katalog perlu dibuat suatu fungsi bernama show_katalog yang menerima parameter
request
dan me-returnrender(request, “katalog.hml”)
. - Buat file baru bernama
urls.py
pada folder aplikasikatalog
untuk melakukan routing terhadap fungsiviews
yang baru saja dibuat sehingga nantinya halaman HTML katalog dapat ditampilkan pada browser client. Tambahkan juga aplikasikatalog
ke dalamurls.py
yang terdapat pada folderproject_django
dengan menambahkan kodepath(‘katalog/‘, include(‘katalog.urls.’))
pada variabelurlpatterns
- Load data json menggunakan syntax python manage.py loaddata initial_catalog_data.json. Pada fungsi views yang telah dibuat, import models yang sudah ada ke dalam file
views.py
, kemudian dalam fungsishow_katalog
yang sudah dibuat sebelumnya, update fungsi tersebut sehingga ia dapat memanggil fungsi query ke model database dan menyimpan hasil queryt tersebut ke dalam vairablecontext
kemudian tambahkancontext
sebagai parameter ketiga pada pengembalian fungsi render yang sudah dibuat sebelumnya. Data yang ada pada variabelcontext
tersebut akan ikut di-render oleh Django sehingga nantinya data dapat muncul di halaman HTML. Untuk menampilkan daftar katalog ke dalam tabel, perlu dilakukan iterasi terhadap variabellist_item
yang telah dirender ke dalam file HTML. - Untuk melakukan deploy, pertama tambahkan file Procfile yang berguna untuk mengatur deployment. Selanjutnya pilih menu buat aplilkasi baru pada Heroku, hubungkan ke repository di github, setting api_key, dan selamat aplikasi katalog telah berhasil dideploy
Template ini dibuat berdasarkan PBP Ganjil 2021 yang ditulis oleh Tim Pengajar Pemrograman Berbasis Platform 2021 (@prakashdivyy) dan django-template-heroku yang ditulis oleh @laymonage, et al.. Template ini dirancang sedemikian rupa sehingga mahasiswa dapat menjadikan template ini sebagai awalan serta acuan dalam mengerjakan tugas maupun dalam berkarya.