Post kali ini akan membahas mengenai rangkuman secara umum ketika saya mengikuti tutorial dari Django documentation. Tutorial kali ini menggunakan virtualenv untuk virtual environment django.
Part 1-2 Installation and Intro
- Buat project mysite >
python manage.py startproject mysite
- Buat app polls >
python manage.py startapp polls
- Buat view index di
mysite/polls/views.py
- Buat url index di
mysite/polls/urls.py
- Daftarkan polls.urls yang dibuat sebelumnya ke url conf root di
mysite/mysite/urls.py
- Jalankan server >
python manage.py runserver
- Buka browser dan masukkan alamat > localhost:8000/polls
- Membuat models di
mysite/polls/models.py
- Aktifkan model yang telah dibuat di
mysite/mysite/settings.py
- Jalankan perintah >
python manage.py makemigrations polls
- Jalankan perintah migrate untuk membuat database >
python manage.py migrate
- Menguji api
python manage.py shell
- Mengubah model menjadi string pada
mysite/polls/models.py
- Menambah user admin pada halaman admin django
python manage.py createsuperuser
- Jalankan server dan buka browser masukkan alamat > localhost:8000/admin
- Masukkan model polls agar dapat dimodifikasi dari halaman admin dengan meregister di
mysite/polls/admin.py
- Sesuaikan timezone di
mysite/mysite/settings.py
Part 3 Views in python
- Menambahkan lebih banyak view di
mysite/polls/views.py
- Kaitkan (wire) ke polls.urls di
mysite/polls/urls.py
- Buat template view, misalkan index untuk menampilkan konten di
mysite/polls/templates/polls/index.html
- Update file views di
mysite/polls/views.py
untuk memanggil index.html yang telah dibuat sebelumnya - import render agar lebih singkat dibanding HttpResponse
from django.shortcuts import render
- Menaikkan (raise) halaman 404 jika halaman tidak ditemukan dengan menggunakan Http404
- import get_object_or_404 untuk kode lebih singkat
- ubah hardcoded URL di template menjadi seperti
<li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>
- Tambahkan namespacing untuk membedakan antara polls1 dan polls2 (jika ada) di
mysite/polls/urls.py
- Edit file html agar mengarah ke namespacing tertentu misalkan polls1. Edit file
mysite/polls/templates/polls/index.html
<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
Part 4 Generic Views
- Buat Form sederhana
Generic view = class based view. Caranya:
- Ubah urlconf di mysite/polls/urls.py
- Ubah views di mysite/polls/views.py
- Ubah urlconf di mysite/polls/urls.py
Tujuannya mengurangi repeatable code
Part 5 Automated Testing
- Inti dari part ini melakukan basic testing terhadap aplikasi polls yang dibuat, baik dari backend dan frontend
- Test pollslikasi polls yang dibuat dari sisi tanggal published baru saja (was_published_recently)
- Masukkan kode test posting di masa depan di
mysite/polls/tests.py
- Jalankan test dengan
> py manage.py test polls
- Cek informasi jika ada failure
- Perbaiki bug pada fungsi was_published_recently di
mysite/polls/models.py
- Testing melalui client-side
> py manage.py shell
- Testing Views dan Generic Views
- Testing past, recent, future posting
Part 6 Static Files
- buat folder static di aplikasi polls di
mysite/polls/static/polls
- buat folder untuk menyimpan gambar di
mysite/polls/static/polls/images
Part 7 Customize Admin Form
- Tujuan dari part ini agar bisa mengubah form dari halaman admin bawaan Django
- Mengambil template dari source Django.
- Buat direktori template di
mysite/templates
- tambahkan direktori
mysite/templates/admin
- Dalam folder admin, tambahkan file base_site.html untuk mengubah halaman awal admin
- Mengetahui letak instalasi django (windows)
> py -c "import django; print(django.__path__)"