Kenali Django Lebih Dalam

 


Kenali Django Lebih Dalam

Setelah berhasil memasang Django, kini saatnya Anda untuk mengenali Django lebih dalam. Ayo kita telusuri Django secara singkat! Berikut beberapa di antaranya.


Django Projects

Di Django, proyek dikenal dengan istilah Django projects. Django projects adalah kumpulan dari konfigurasi dan app (akan dijelaskan selanjutnya). Django projects menggambarkan aplikasi web yang dikembangkan dengan Django. Django projects dapat dibuat dengan menjalankan perintah yang dimiliki oleh django-admin yakni startprojects. Setelah menjalankan perintah django-admin startproject (Tenang, detail lebih lanjut akan kita bahas pada materi setelah ini). Berikut adalah bentuk dari Django projects ketika dibuka melalui PyCharm.

dos-058ab499a2201c068db62ccd24fb20eb20241223112308.png

Perhatikan contoh di atas, Django projects bernama “first_project” di dalamnya terdapat berkas-berkas dan direktori penting seperti settings.pyurls.pydan manage.py. Penasaran berkas dan direktori apa itu? Mari kita bahas.

  • Pertama, yang paling atas, “django-basic” merupakan root direktori proyek. Nama direktori ini dapat diubah dan tidak berpengaruh apa pun terhadap proyek Django.
  • “manage.py”, utilitas berbasis CLI yang dapat digunakan untuk berinteraksi dengan Django.
  • “first_project” merupakan Python package untuk proyek yang telah kita buat.
  • “settings.py”, berkas yang berisi pengaturan atau konfigurasi proyek Django.
  • “urls.py”, berisi URL yang digunakan pada proyek Django.
  • “asgi.py”, titik masuk untuk web server (terkait dengan deployment) yang kompatibel dengan ASGI.
  • “wsgi.py”, titik masuk untuk web server (terkait dengan deployment) yang kompatibel dengan WSGI.
  • “Pipfile” merupakan berkas yang digunakan untuk mengelola dependencies proyek dalam virtual environment.
  • “Pipfile.lock” merupakan berkas yang digunakan untuk mengunci versi dependencies yang ada di berkas Pipfile.


Django Apps

Seperti yang Anda ketahui sebelumnya, Django projects terdiri dari kumpulan konfigurasi dan app. Applications (app) adalah komponen kecil yang digunakan untuk membangun projects yang menyediakan fungsionalitas tertentu. App dapat digunakan kembali (reuse) dan digunakan pada beberapa projects. Kita juga dapat memanfaatkan manage.py untuk membuat Django app menggunakan perintah startapp. Berikut adalah contoh dari Django app.

dos-eaae29684306d99111d2081654ff565f20241223112416.png

Anda dapat melihat bahwa di dalam app terdapat folder migrations, berkas modelview, dan sebagainya.

Karena Django projects dan Django app diurutkan berdasarkan abjad, Anda mungkin kesulitan membedakan folder projects dan app. Cara sederhana untuk membedakannya adalah dengan melihat isi dari folder tersebut. Jika folder tersebut memiliki berkas settings.py, itu adalah Django projects. Jika folder tersebut memiliki migrations, itu adalah Django app. 

Di dalam Django projects, Anda dapat mendaftarkan beberapa Django app. Untuk mendaftarkannya ke Django projects, Anda dapat menuliskan Django app di dalam INSTALLED_APPS seperti berikut ini.

dos-dabaa1b970672cadf2fdd15e14fe6a5120241104153354.jpeg

Selain itu, Anda juga dapat mendaftarkan dependencies dari pihak ketiga (third-party) di dalam INSTALLED_APPS. Salah satu contohnya adalah REST Framework (akan kita bahas nanti).

django-admin dan manage.py

django-admin adalah utilitas berbasis command-line yang digunakan untuk tugas-tugas administratif, seperti membuat dan menjalankan database migration, melihat daftar migration, dan sebagainya. Adapun manage.py adalah utilitas berbasis command-line yang secara otomatis tersedia ketika Anda membuat proyek Django. Lalu, apa perbedaan dari keduanya?

django-admin akan disimpan di sistem path tempat Anda memasangnya. Anda dapat melihat path dari django-admin dengan menuliskan perintah “which django-admin” di Terminal (where django-admin untuk Windows).

dos-6426a16fd0ebff460da5ea90a5ea2b7820241104153354.jpeg

Umumnya, ketika bekerja pada satu proyek Django, lebih mudah menggunakan manage.py daripada django-admin. Namun, jika perlu untuk berpindah di antara beberapa pengaturan Django, gunakanlah django-admin. Setiap membuat Django projects, manage.py akan tersedia secara otomatis di dalam root direktori Django projects. 

Untuk melihat perintah yang tersedia di django-admin, Anda dapat menjalankan perintah “django-admin help --commands” di Terminal. Anda akan melihat daftar perintah yang tersedia seperti berikut.

dos-f059644ced822b9a92f18adb76713fc720241104153355.jpeg

Beberapa perintah yang ada pada gambar di atas akan sering kita gunakan nantinya, seperti makemigrationsmigratestartapp, dan startproject.


Object-relational mapping (ORM)

Django memiliki fleksibilitas yang tinggi, Anda dapat menggunakan Django tanpa database. Namun, jika ingin menggunakan database, Django secara default menggunakan database SQLite. Selain itu, Django juga memiliki fitur bawaan yakni ORM. ORM adalah teknik untuk mengonversi data dari database ke format yang digunakan aplikasi atau sebaliknya. ORM (Object-relational mapping) adalah teknik untuk menerjemahkan data dalam database dan yang digunakan di dalam OOP (Object-oriented programming). 

Jika di framework lain, kita harus 'berakrobat' untuk menggunakan database dan ORM, Django justru membuatnya jauh lebih mudah. ORM memudahkan developer ketika ingin berinteraksi dengan database. Dengan menggunakan ORM, mengubah data yang ada di database menjadi lebih mudah. Anda dapat mengakses ORM dengan menggunakan Django shell.

Berikut contoh penggunaan ORM.

dos-e6a99624f30b0dc1c86a40f2cfa36b7520241104153355.jpeg

Pada contoh di atas, untuk mendapatkan seluruh data Note, kita menggunakan perintah Note.objects.all(). Perintah tersebut sama dengan menjalankan query “SELECT * FROM notes”.


Django Admin site

Keunggulan yang paling menarik dari Django adalah ia secara bawaan menyediakan antarmuka yang disebut dengan Django Admin site. Django Admin site dapat menggunakan model untuk secara otomatis membuat fungsi CRUD (Create, Read, Update, dan Delete). Mengagumkan, bukan? Anda dapat mengakses Django Admin site dengan mengunjungi path /admin.

dos-15f6c8f6308f36fea9fa229e828f4b8d20241104153355.jpeg

Dengan demikian, Anda dapat menghemat banyak waktu selama pengembangan. Di lingkungan produksi, Django Admin site disarankan hanya digunakan oleh pihak internal perusahaan atau organisasi saja. Selain itu, Django Admin site dapat digunakan untuk mengatur otentikasi dan otorisasi aplikasi Back-End seperti mendaftarkan user.

dos-cbb4ceb519f71bf957636e7dfdfe4fdc20241104153355.jpeg


Django shell

Django shell adalah python interpreter yang interaktif. Di dalam Django shell Anda dapat menulis kode python dan menjalankannya baris ke baris. Selain itu, Anda juga dapat menjalankan kode Django. Untuk mengakses Django shell, Anda dapat menuliskan perintah python manage.py shell atau django-admin shell. Berikut contoh penggunaan Django shell.

dos-dec476b77934ba87baa1e955ad7839b520241104153355.jpeg

Contoh di atas mengimpor Django dan menjalankan kode untuk melihat versi Django. Selain itu, Anda juga dapat berinteraksi dengan database di dalam Django shell seperti contoh sebelumnya tentang penggunaan ORM.


Django Ecosystem

Reusability adalah “semangat” yang dimiliki oleh Python. Oleh karena itu, Django juga memiliki semangat yang sama yaitu reusability. Salah satu bentuk dari reusability adalah Django app. Karena Django memiliki app yang dapat digunakan di banyak project, banyak developer yang mengembangkan Django app dan menyebarkan luaskannya sehingga banyak digunakan oleh developer lainnya.

Django sangat kaya akan packages/library/dependencies pihak ketiga yang dapat membantu pengembangan aplikasi Back-End dengan Django. Anda dapat mencoba menggunakan Django app yang dikembangkan oleh developer atau komunitas di luar sana melalui halaman Django packages. Salah satu contoh Django app yang banyak digunakan untuk RESTful API adalah REST Framework.


Django Documentation

Tahukah Anda? Django memiliki dokumentasi yang sangat lengkap dan membantu pengguna, baik pengguna yang baru belajar maupun pengguna yang sudah ahli. Anda dapat mengakses dokumentasi Django pada halaman Django documentation.  Untuk langkah awal, Anda dapat mengikuti dokumentasi pada bagian Django First Steps.

Sudah tidak sabar untuk membuat proyek dengan Django? Jika iya, ayo kita lanjut ke materi berikutnya!

Latihan: Membuat Proyek Pertama dengan Django

Di materi sebelumnya, Anda sudah mengetahui fitur unggulan dari Django. Inilah saatnya Anda untuk mencobanya. Apakah Anda sudah tidak sabar ingin menggunakan Django? Jika tidak, yuk simak langkah-langkah berikut.

  1. Pertama, buka kembali folder django-basic yang telah dibuat pada “Latihan: Memasang Django” sebelumnya.
  2. Setelah itu, aktifkan virtual environment dengan perintah “pipenv shell”.dos-51f7abe144d15eb71640a96ee276047820241104154714.jpeg
  3. Untuk membuat proyek Django, Anda dapat memanfaatkan django-admin. Masih ingatkan bahwa django-admin memiliki perintah “startproject”? Jalankan perintah berikut ini.
    1. django-admin startproject first_project . 
    startproject adalah perintah untuk membuat proyek Django yang memiliki parameter nama proyek (pada contoh, first_project) dan diikuti oleh nama direktori. Pada contoh di atas, kita menggunakan direktori saat ini (django-basic). Oleh karena itu, kita menambahkan titik (.) di akhir perintah.
  1. Kemudian, kita akan beralih ke PyCharm.
  2. Buka PyCharm.
  3. Klik Open untuk membuka proyek yang sudah ada.dos-4a819b63ffa09862126cef387a1aa5d720241104154714.jpeg
  4. Selanjutnya, carilah folder django-basic yang telah kita bikin sebelumnya.dos-b35916fa77b62cf759c73b9bf3b78e6120241104154713.jpeg
  5. Setelah itu, klik OK.
  6. Akan tampil pop up seperti berikut dan klik TRUST PROJECT.dos-a36951d1f22a5911794c237035ed09c320241104154713.jpeg
  7. Selanjutnya, Anda akan dialihkan ke halaman home PyCharm.
  8. Di sebelah kiri, Anda dapat melihat bahwa saat ini sudah tersedia beberapa berkas.
    dos-fdb6a2687b486d33c9b78ee2d4d3ce0c20241104155042.jpeg
    Mari kita bahas struktur folder proyek Django.
    • Pertama, yang paling atas, “django-basic” merupakan root direktori proyek. Nama direktori ini dapat diubah dan tidak berpengaruh apa pun terhadap proyek Django.
    • “manage.py”, utilitas berbasis CLI yang dapat digunakan untuk berinteraksi dengan Django.
    • “first_project” merupakan Python package untuk proyek yang telah kita buat. Masih ingat, kan? Sebelumnya kita memberikan namanya “first_project”.
    • “Pipfile” merupakan berkas yang digunakan untuk mengelola dependencies proyek dalam virtual environment.
    • “Pipfile.lock” merupakan berkas yang digunakan untuk mengunci versi dependencies yang ada di berkas Pipfile.
  9. Selanjutnya, kita akan mengubah virtual environment agar dapat menjalankan server development. PyCharm secara default akan menggunakan virtual environment bawaannya yaitu venv. Karena kita ingin menggunakan Pipenv, tambahkan interpreter untuk Pipenv. Klik status bar yang ada di sebelah kanan bawah.
    dos-5a271bc192542c154d4a1501e897e2bf20241104155225.jpeg 
  1. Setelah itu, klik Interpreter Settings.dos-f83b7ea2da9ecd0883c7b1535330632c20241104154713.jpeg
  2. Kemudian, akan tampil popup pengaturan seperti berikut. Klik Add Interpreter.dos-137ae04eb6f4a3de099cd998000fed8c20241104154714.jpeg
  3. Selanjutnya, akan tampil pop up seperti berikut. Pilihlah Pipenv Environment.dos-60ab177958d044843082a5693ccf3d5420241104154714.jpeg
  4. Setelah itu, klik OK. Di kanan bawah, Anda akan melihat status bar Pipenv.dos-da012e58530dc0b0a31c4628c1a2e4db20241104154713.jpeg
  5. Selanjutnya, bukalah Terminal yang ada di sebelah kiri bawah.dos-48796f7150faa16d920e610b9723cdba20241104154713.jpeg
  6. Kemudian, jalankan perintah untuk menjalankan server dengan mengetik python manage.py runserver.
    dos-1823344b2597f1b9d55804149493126f20241104155615.jpeg
    runserver adalah perintah untuk menjalankan server development di lokal. Di contoh kita tidak mendefinisikan port-nya sehingga server akan berjalan di port default-nya yaitu 8000. Jika Anda ingin menuliskan port secara spesifik, Anda dapat menuliskannya setelah runserver seperti berikut ini.
    dos-ae69f240d7fb1492c8c0ab96e1be7f8920241104155530.jpeg
    Selain itu, server development secara otomatis akan mendeteksi perubahan di kode (auto reload) sehingga Anda tidak perlu lagi me-restart servernya jika terjadi perubahan di kode. Sebaliknya, jika Anda ingin runserver tidak melakukan auto reload, Anda dapat menggunakan parameter --noreload.
    Catatan: 
    Jangan pernah menggunakan server development di lingkungan produksi.

  1. Selanjutnya, jika berhasil akan tampak seperti berikut ini.dos-f1496a526f8e8b10e493e10cf66771b520241104154714.jpegTenang, jangan panik dulu ketika melihat warna merah di Terminal (akan kita bahas nanti ya).
  1. Setelah itu, kunjungi URL http://127.0.0.1:8000/. Anda akan melihat tampilan seperti berikut ini.dos-890e33fa20e92fff79298e535417e49c20241104154714.jpegSelamat Anda telah berhasil untuk menjalankan server development Django! Gambar di atas merupakan tampilan dari halaman home atau root dari proyek Django.
  2. Klik Ctrl + C untuk memberhentikan server development.
  3. Anda masih ingat, kan, bahwa di Django ada yang namanya Django app. Untuk membuatnya, Anda dapat menjalankan perintah berikut ini.
    1. django-admin startapp first_app
    Perintah tersebut merupakan perintah yang tersedia di django-admin untuk membuat Django app.
  1. Setelah berhasil, Anda akan melihat direktori baru pada direktori proyek yang bernama “first_app”.
    dos-6a7526067d3891a8f2afa3fda00de4d720241104160026.jpeg
    Di dalam direktori app, terdapat direktori migrations yang akan kita gunakan saat menggunakan database, yang diimplementasikan di dalam models. Selain itu, terdapat juga views.
  2. Kemudian, daftarkan Django app tersebut ke dalam proyek dengan cara menuliskannya di INSTALLED_APPS yang ada di settings.py.
  3. Sebelum mendaftarkan Django app ke dalam proyek, kita akan melihat terlebih dahulu Django app yang sudah terdaftar di Django projects. Caranya adalah dengan masuk ke Django shell. Di Terminal, ketik perintah berikut untuk masuk ke Django shell.
    1. python manage.py shell
    Tampilannya akan seperti berikut jika berhasil.
    dos-ebf0a7ba20b25336751325c500978fa520241104160236.jpeg 
  1. Setelah itu, di dalam shell ketik perintah berikut untuk menampilkan daftar Django app yang sudah terdaftar.
    1. from django.conf import settings
    2. print(settings.INSTALLED_APPS)
    Hasilnya seperti berikut.
    dos-768b06ad5bcb72f37bb702152c4c204f20241104160411.jpeg
    Anda dapat melihat bahwa saat ini Django app yang kita buat belum ada di daftar tersebut, artinya Django app tersebut belum terdaftar.
  1. Untuk mendaftarkan Django app, Anda dapat melakukannya dengan menuliskan dotted path di INSTALLED_APPS yang ada di settings.py. Dotted path adalah alamat dari Class AppConfig yang ada di berkas apps.py milik Django app. Misalnya, Django app Anda bernama first_app, maka dotted path-nya adalah first_app.apps.FirstAppConfig. Tambahkan dotted path pada bagian paling atas INSTALLED_APPS.
    1. INSTALLED_APPS = [
    2.     'first_app.apps.FirstAppConfig',
    3.     'django.contrib.admin',
    4.     'django.contrib.auth',
    5.     'django.contrib.contenttypes',
    6.     'django.contrib.sessions',
    7.     'django.contrib.messages',
    8.     'django.contrib.staticfiles',
    9. ]
  1. Kemudian, Anda dapat mengecek lagi daftar Django app yang sudah terdaftar. Pastikan hasilnya seperti berikut.
    dos-7cc88a79879cf0157fe082af899170b120241104160616.jpeg
    Cool! Django app sudah terdaftar di Django projects. Selamat ya!

Sejauh ini, Anda sudah berhasil untuk membuat proyek Django hingga menjalankannya di lokal. Berikutnya, kita akan bahas mengenai database. Ayo kita lanjut!


Bersambung ke:

Django Settings


Comments

Popular posts from this blog

BackEnd Python Developer

Prasyarat Kemampuan