Tutorial Belajar Django 3.1 Mengenal Project dan App
Tutorial Belajar Django 3.1 Mengenal Project dan App

Daftar Isi

 

Sebelumnya, kita sudah mempersiapkan untuk belajar django 3.1. Yang sudah dipersiapkan yaitu mulai dari membuat virtual environment, menginstall Django 3.1.1, membuat project dan app. Sebelum kita melanjutkan kembali tutorial belajar django, saya akan menjelaskan tentang struktur directory pada django project dan app, serta mengenal perbedaan project dan app

Struktur Directory Django

Pada persiapan awal belajar django, kita sudah membuat project bernama websaya dan app bernama blog. Sekarang kita akan lihat dulu struktur directory pada project, yang dalam contoh ini adalah websaya:

struktur directory project

Struktur Directory Project

struktur directory project djangoPada gambar terlihat, di dalam directory project ada directory yang bernama env, websaya, dan websaya. Directory websaya ada dua disitu ya. Directory env, itu adalah virtual environment.

Ok, sekarang kita lihat satu persatu

  • WEBSAYA

    Pada directory websaya yang pertama, ini disebut dengan BASE DIRECTORY. Directory ini bebas diganti nama, tidak mempengaruhi terhadap sistem kerja Django.

  • manage.py

    File manage.py ini berada di dalam base directory. File ini digunakan untuk berkomunikasi dengan project kita melalui command line. File manage.py tidak boleh dihapus dan juga tidak boleh diedit kalau kamu tidak mengerti maksudnya. Salah satu contoh perintah yang menggunakan file manage.py adalah runserver. python manage.py runserver perintah ini untuk menjalankan server built in django. Sehingga project bisa diakses melalui browser.

    Perintah lainnya diantaranya adalah python manage.py makemigrations, python manage.py migrate, python manage.py createsuperuser, dan python manage.py collectstatic.

  • websaya

    Directory websaya yang ini disebut dengan project directory. Inilah directory project kita, dan directory ini tidak boleh dihapus apa lagi direname.

  • __init__.py

    Ini adalah file kosong, meski kosong file ini menginformasikan kepada python bahawa directory tersebut adalah modul python.

  • asgi.py.

    Django juga mendukung untuk membangun web pada ASGI Server atau atau asynchronous server.

  • settings.py.

    Sesuai dengan namanya, ini adalah tempat kita melakukan pengaturan utama dari proyek django. Ini berisi informasi dasar seperti diantaranyaaplikasi yang terinstall, informasi middleware, database, dan templates.

    Secara default fungsionalitas dasar yang dibutuhkan untuk website django sudan tersedia difile ini.

  • urls.py

    Berisi informasi URL proyek django. ini menginformasikan hal terkait dengan URL gambar, halaman web, dan apllikasi web, dan sumber daya lain pada website kita.

    Kegunaan utama adalah untuk menghubungkan antara app dengan project. Semua yang diisi pada PATH ini akan diproses oleh file urls.py. Kemudian itu akan menyesuaikan suatu request dengan app yang ditunjuk yang dihubungkan dengannya.

  • wsgi.py Sama halnya dengan asgi.py dan yang wsgi.py ini untuk digunakan pada server wsgi. Yaitu untuk konektivitas pada server.

Setelah kita mengetahui isi dari project django yang sudah dibuat dan kita juga sudah mengetahui tata letak arsitektur pada django dan tujuannya. Semua file ini adalah yang paling dasar, dan pasti ada pada semua project django.

Struktur Pada App

struktur directory app djangoPada bagian pertama sebelumnya, kita sudah membuat sebuah app yang bernama blog. Di dalam app yang baru, semua isinya akan sama seperti ini.

  1. migrations directory yang menyimpan informasi migrate
  2. __init__.py Sama seperti yang ada diproject directory, yaitu memberi tau python bahwa ini adalah paket python.
  3. admin.py dengan file ini kita bisa mengimport models yang sudah dibuat agar dapat diakses pada halaman admin. Halaman admin atau admin interface django sudah enable dapat digunakan sejak kita membuat project yaitu pada perintah startproject.

    Admin django memiliki banyak hooks untuk customize, satu contoh yang sudah disebut tadi, kita bisa mengakses models di halaman admin tanpa membuat views. Tinggal daftarkan saja modelsnya dan bisa untuk menambah record, menghapus, atau mengeditnya.

  4. apps.py file ini dibuat untuk membantu pengguna memasukkan konfigurasi aplikasi apa pun untuk aplikasi tersebut. Dengan ini kita bisa mengkonfigurasi beberapa atribut aplikasi.
  5. models.py berisi informasi definitif tentang data yang kita punya. Yaitu merepresentasikan atau memetakan ke tabel database, yang ini juga berisi field dan perilaku (behaviors) penting dari data yang disimpan.

    Pada models itu berupa kelas (class) yang setiap class itu mewakili satu tabel database.

  6. test.py
  7. views.py file ini bertugas untuk menangani web request dan mengembalikan web response. Response bisa berupa HTML pada halaman web, atau redirect (pengalihan), bisa juga error 404, dokumen XML, gambar, atau yang lainnya. Views.py ada dua tipe, yaitu Function Based Views dan Class Based Views.

Ok, kita sudah tau isi dari project dan juga app. Seperti inilah, project dan app django yang baru dibuat.

Perbedaan Project dan App

Mungkin teman-teman bertanya, apa beda project dan app? singkatnya adalah project itu seluruh aplikasi dan semua bagiannya, sedangkan app ini adalah submodul dari project.

App ini berdiri sendiri dan tidak terikat dengan aplikasi lain yang ada di dalam project, sehingga secara teori, Kita bisa menggunakannya pada project lain. Sebuah app, itu umumnya memiliki models.py sendiri. Sebuah project bisa saja memiliki satu app atau lebih.

Misal, sebuah project adalah keseluruhan web site, yang disusun dari beberapa app. Mungkin satu app untuk Artikel blog, kontak form, produk (shoping cart), dan mungkin juga fitur pendukung lainnya.

Tapi, hal yang perlu diperhatikan adalah keterkaitan antar app. Kalau dalam praktiknya satu app bisa menyelesaikan dua masalah, maka pisahkan menjadi dua app. Dan kalau ada dua app yang ternyata itu saling terkait dan tidak bisa dipisahkan untuk digunakan kembali pada project lain, maka lebih baik untuk digabungkan menjadi satu app.

Selanjutnya

Belajar Mengenal Models Django