Aplikasi Django: Semua yang Perlu Anda Ketahui Tentang 2022

Diterbitkan: 2021-01-04

Django adalah salah satu kerangka kerja python teratas yang dibangun oleh para profesional yang mendorong desain pragmatis dan pengembangan cepat untuk pengembang web. Ini cepat, aman, dan favorit di antara pengembang web. Django memiliki daftar aplikasi yang telah terinstal yang menyimpan konfigurasi dan membantu dalam menyediakan introspeksi. Ini mempertahankan daftar lengkap model yang tersedia. Registri disebut aplikasi. Aplikasi Django tersedia di 'django.apps'

>>> dari aplikasi impor django.apps

>>> apps.get_app_config('admin').verbose_name

'Administrasi'

Daftar isi

Proyek Django

Aplikasi Django apa pun dapat disebut sebagai proyek. Ini ditentukan oleh modul pengaturan. Namun, itu juga mengandung beberapa hal lain. Misalnya, jika Anda menjalankan django-admin startproject mysite, maka Anda akan mendapatkan direktori proyek mysite. Ini akan berisi paket Python mysite dengan setting.py, urls.py, asgi.py dan wsgi.py. Paket sering dapat diperpanjang sehingga mencakup CSS, perlengkapan dan template lain yang tidak terkait dengan aplikasi tertentu.

Direktori root proyek atau yang memiliki manage.py biasanya berisi semua aplikasi proyek yang tidak diinstal secara terpisah.

Aplikasi Django

Aplikasi berarti paket Python yang memiliki beberapa fitur. Itu dapat digunakan kembali di beberapa proyek. Aplikasi dapat berupa kombinasi tampilan, model, URL template, file statis, dll. Mereka sering dihubungkan dalam proyek dengan pengaturan INSTALLED-APPS . Ini sering dapat dihubungkan dengan mekanisme lain secara opsional seperti URLconfs yang merupakan pengaturan MIDDLEWARE .

Baca: Gaji Pengembang Django di India

Aplikasi Django adalah kumpulan kode yang menciptakan interaksi dengan beberapa bagian dari kerangka kerja tertentu. Itu tidak memiliki objek Aplikasi. Terkadang, Django mungkin perlu berinteraksi dengan aplikasi tertentu untuk introspeksi atau konfigurasi. Oleh karena itu, ada metadata di AppConfig untuk aplikasi yang diinstal. Paket proyek juga dapat dianggap sebagai aplikasi dan juga dapat memiliki model.

Mengonfigurasi Aplikasi Django

Jika Anda ingin mengonfigurasi aplikasi, Anda harus membuat subkelas AppConfig dan kemudian menambahkan garis putus-putus di INSTALLED_Apps. Ketika mendapat garis putus-putus, Django mulai memeriksa variabel default_app_config . Setelah didefinisikan, itu menjadi subkelas AppConfig untuk aplikasi spesifik itu. Jika tidak ada default_app_config yang dibuat, Django akan menggunakan kelas AppConfig dasar .

Baca juga: Perbedaan Full Stack dan Mean Stack

Untuk Penulis Aplikasi Django

Katakanlah Anda sedang mengembangkan aplikasi pluggable 'Rock 'n' roll'. Kemudian, Anda dapat mengembangkan nama dengan cara berikut:

# rock_n_roll/apps.py

dari django.apps impor AppConfig

kelas RockNRollConfig(AppConfig):

nama = 'rock_n_roll'

verbose_name = “Rock 'n' roll”

Anda juga dapat memuatnya sebagai subkelas AppConfig menggunakan:

# rock_n_roll/__init__.py

default_app_config = 'rock_n_roll.apps.RockNRollConfig'

Dengan demikian, RockNRollConfig dapat digunakan ketika 'rock_n_roll' ada di Aplikasi yang Diinstal. Ini akan membantu Anda menggunakan fitur AppConfig tanpa pengguna harus melakukan pembaruan di INSTALLED_APPS.

Untuk Pengguna Aplikasi

Katakanlah Anda menggunakan aplikasi Rock 'n' roll dalam sebuah proyek yang disebut antologi. Sekarang, Anda ingin itu muncul sebagai Jazz Manouche sebelum itu. Jadi, Anda dapat mengikuti langkah-langkah ini:

# antologi/apps.py

dari rock_n_roll.apps impor RockNRollConfig

kelas JazzManoucheConfig(RockNRollConfig):

verbose_name = “Jazz Manouche”

# antologi/settings.py

INSTALLED_APPS = [

'antologi.apps.JazzManoucheConfig',

# …

]

kelas AppConfig

Metadata untuk aplikasi disimpan dalam objek konfigurasi aplikasi. Beberapa atribut ini dikonfigurasi dalam subkelas AppConfig dan mereka disetel sebagai hanya-baca atau oleh Django.

Atribut yang dapat dikonfigurasi

AppConfig.name

Jalur: django.contrib.admin

Ini membantu dalam mendefinisikan aplikasi di mana konfigurasi diterapkan. Itu diatur dalam subkelas AppConfig. Unik dalam proyek Django.

AppConfig.label

Nama : admin

Membantu pelabelan ulang aplikasi terutama jika dua di antaranya memiliki label yang saling bertentangan. Ini menjadi komponen terakhir dari sebuah nama secara default. Harus berupa pengenal Python yang valid. Unik dalam proyek Django.

AppConfig.verbose_name

Nama: Administrasi

Default ke: label.title()

AppConfig.path

Contoh direktori aplikasi: '/usr/lib/pythonX.Y/dist-packages/Django/contrib/admin'

Dalam banyak kasus, Django dapat mendeteksi dan menyetelnya secara otomatis, tetapi Anda dapat menimpa atribut kelas secara eksplisit melalui subkelas AppConfig.

Atribut hanya baca

AppConfig.module

Contoh modul root: <modul 'django.contrib.admin' dari 'django/contrib/admin/__init__.py'>

AppConfig.models_module

Contoh modul dengan model: <module 'django.contrib.admin.models' dari 'django/contrib/admin/models.py'>

Bisa juga None jika tidak mengandung model.

Metode

AppConfig.get_models()

Ini akan membantu mengembalikan kelas Model yang dapat diubah untuk aplikasi. Ini akan membutuhkan registri aplikasi untuk diisi sepenuhnya.

AppConfig.get_model

Mengembalikan model spesifik dengan case-insensitive: model_name. Nama model

Ini membantu untuk meningkatkan LookupError jika tidak ada model khusus. Ini akan membutuhkan registri aplikasi untuk diisi sepenuhnya.

AppConfig.siap()

Ini dapat membantu untuk mengganti metode dan karenanya, melakukan tugas inisialisasi seperti mendaftarkan sinyal. Dapat dipanggil setelah registri terisi penuh. Namun, Anda tidak dapat mengimpor model pada tingkat modul tempat kelas AppConfig ditentukan. Namun, Anda dapat mengimpornya dalam ready(), yang menggunakan get_model() atau pernyataan import.

Paket Namespace Digunakan sebagai Aplikasi

Ketika paket Python tidak memiliki __init__.py, mereka dikenal sebagai paket namespace. Mereka dapat tersebar di beberapa direktori dan lokasi di sys.path. Aplikasi Django akan membutuhkan sistem file basis tanda di mana Django berdasarkan konfigurasi akan mencari aset statis, templat, dll. Oleh karena itu, aplikasi Django hanya dapat digunakan jika salah satu dari ini benar:

  • Paket namespace memiliki satu lokasi tunggal.
  • Kelas AppConfig yang digunakan untuk mengonfigurasi aplikasi memiliki atribut kelas jalur.

Jika tidak ada kondisi yang terpenuhi, maka Django akan menampilkan ImproperlyConfigured.

Registri Aplikasi Django

API publik tertentu disediakan oleh registri aplikasi. Ini adalah beberapa metode, meskipun mungkin berubah:

aplikasi.siap

Ketika atribut Boolean disetel ke True dan registri terisi penuh dan semua metode AppConfig.ready() dipanggil.

apps.get_app_configs()

Ini akan mengembalikan instance AppConfig yang dapat diubah.

apps.get_app_config(app_label)

Ini akan mengembalikan AppConfig untuk aplikasi yang memiliki app_label. Jika tidak ada aplikasi, itu akan memunculkan LookupError.

apps.is_installed( Ini akan memeriksa apakah ada nama dari aplikasi yang diberikan di registri ini. app_name akan menjadi nama lengkap aplikasi, contoh: django.contrib.admin

apps.get_model( Ini akan mengembalikan model dengan model_name dan app_label yang diberikan. Jika tidak ada aplikasi, itu akan memunculkan LookupError.

Proses inisialisasi

Jadi, sekarang pertanyaannya adalah bagaimana memuat aplikasi Django. Saat Django dimulai, django.setup() akan mengisi registri.

setup( set_prefix=Benar )

Konfigurasi Django terjadi:

  • Dengan memuat pengaturan terlebih dahulu
  • Pengaturan pendaftaran
  • Jika set_prefix benar, maka awalan skrip revolver URL menjadi FORCE_SCRIPT_NAME jika ditentukan atau sebaliknya.
  • Registri aplikasi diinisialisasi.

Panggilan fungsi otomatis terjadi:

  • Ketika server HTTP berjalan melalui dukungan WSGI dari Django
  • Ketika perintah manajemen dipanggil.

Memecahkan masalah

Beberapa masalah umum yang mungkin dihadapi seseorang adalah:

  • AppRegistryNotReady: Terjadi selama pengimporan konfigurasi aplikasi atau modul model memicu kode yang tidak bergantung pada registri aplikasi. Jika Anda menjalankan kueri basis data dengan ORM, masalah ini dapat terjadi.
  • ImportError: tidak dapat mengimpor nama … – Ini terjadi ketika urutan impor berakhir dalam satu lingkaran. Anda dapat menghilangkan proses dengan meminimalkan ketergantungan antara modul model.
  • Django.contrib.admin menyebabkan penemuan otomatis modul admin. Ubah INSTALLED_APPS dari django.contrib.admin menjadi django.contrib.admin.apps.SimpleAdminConfig untuk mencegahnya.

Mudah-mudahan, sekarang Anda dapat mengintegrasikan aplikasi Django dalam pengembangan web Anda dengan mudah.

Dapatkan Kursus Pengembangan Perangkat Lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Kesimpulan

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Django dan bahasa dan alat pengembang tumpukan penuh lainnya, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Tumpukan Penuh yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Persiapkan Karir Masa Depan

Daftar Sekarang untuk Magister Rekayasa Perangkat Lunak