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

  1. Buat project mysite > python manage.py startproject mysite
  2. Buat app polls > python manage.py startapp polls
  3. Buat view index di mysite/polls/views.py
  4. Buat url index di mysite/polls/urls.py
  5. Daftarkan polls.urls yang dibuat sebelumnya ke url conf root di mysite/mysite/urls.py
  6. Jalankan server > python manage.py runserver
  7. Buka browser dan masukkan alamat > localhost:8000/polls
  8. Membuat models di mysite/polls/models.py
  9. Aktifkan model yang telah dibuat di mysite/mysite/settings.py
  10. Jalankan perintah > python manage.py makemigrations polls
  11. Jalankan perintah migrate untuk membuat database > python manage.py migrate
  12. Menguji api
    python manage.py shell  
  13. Mengubah model menjadi string pada mysite/polls/models.py
  14. Menambah user admin pada halaman admin django
    python manage.py createsuperuser
  15. Jalankan server dan buka browser masukkan alamat > localhost:8000/admin
  16. Masukkan model polls agar dapat dimodifikasi dari halaman admin dengan meregister di mysite/polls/admin.py
  17. Sesuaikan timezone di mysite/mysite/settings.py

Part 3 Views in python

  1. Menambahkan lebih banyak view di mysite/polls/views.py
  2. Kaitkan (wire) ke polls.urls di mysite/polls/urls.py
  3. Buat template view, misalkan index untuk menampilkan konten di mysite/polls/templates/polls/index.html
  4. Update file views di mysite/polls/views.py untuk memanggil index.html yang telah dibuat sebelumnya
  5. import render agar lebih singkat dibanding HttpResponse from django.shortcuts import render
  6. Menaikkan (raise) halaman 404 jika halaman tidak ditemukan dengan menggunakan Http404
  7. import get_object_or_404 untuk kode lebih singkat
  8. ubah hardcoded URL di template menjadi seperti
    <li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>
  9. Tambahkan namespacing untuk membedakan antara polls1 dan polls2 (jika ada) di mysite/polls/urls.py
  10. 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

  1. Buat Form sederhana
  2. Generic view = class based view. Caranya:

    • Ubah urlconf di mysite/polls/urls.py
    • Ubah views di mysite/polls/views.py
  3. Tujuannya mengurangi repeatable code

Part 5 Automated Testing

  1. Inti dari part ini melakukan basic testing terhadap aplikasi polls yang dibuat, baik dari backend dan frontend
  2. Test pollslikasi polls yang dibuat dari sisi tanggal published baru saja (was_published_recently)
  3. Masukkan kode test posting di masa depan di mysite/polls/tests.py
  4. Jalankan test dengan
    > py manage.py test polls
  5. Cek informasi jika ada failure
  6. Perbaiki bug pada fungsi was_published_recently di mysite/polls/models.py
  7. Testing melalui client-side
    > py manage.py shell
  8. Testing Views dan Generic Views
  9. Testing past, recent, future posting

Part 6 Static Files

  1. buat folder static di aplikasi polls di mysite/polls/static/polls
  2. buat folder untuk menyimpan gambar di mysite/polls/static/polls/images

Part 7 Customize Admin Form

  1. Tujuan dari part ini agar bisa mengubah form dari halaman admin bawaan Django
  2. Mengambil template dari source Django.
  3. Buat direktori template di mysite/templates
  4. tambahkan direktori mysite/templates/admin
  5. Dalam folder admin, tambahkan file base_site.html untuk mengubah halaman awal admin
  6. Mengetahui letak instalasi django (windows)
    > py -c "import django; print(django.__path__)"