Aplicații Django: tot ce trebuie să știți în 2022

Publicat: 2021-01-04

Django este unul dintre cele mai bune cadre python construite de profesioniști, care încurajează proiectarea pragmatică și dezvoltarea rapidă pentru dezvoltatorii web. Este rapid, sigur și favorit printre dezvoltatorii web. Django are deja instalat un registru de aplicații care stochează configurația și ajută la furnizarea de introspecție. Menține o listă cuprinzătoare de modele disponibile. Registrul se numește aplicații. Aplicațiile Django sunt disponibile în „django.apps”

>>> din django.apps import apps

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

'Administrare'

Cuprins

Proiecte Django

Orice aplicație Django poate fi numită proiect. Este definit de un modul de setări. Cu toate acestea, conține și alte câteva lucruri. De exemplu, dacă rulați django-admin startproject mysite, atunci veți primi un director de proiect mysite. Acesta va conține un pachet Python mysite cu setting.py, urls.py, asgi.py și wsgi.py. Pachetul poate fi adesea extins astfel încât să includă CSS, fixture și alte șabloane care nu sunt asociate cu nicio aplicație specifică.

Directorul rădăcină al proiectului sau cel care are manage.py conține de obicei toate aplicațiile proiectului care nu sunt instalate separat.

Aplicații Django

Aplicație înseamnă un pachet de Python care are unele caracteristici. Poate fi reutilizat în mai multe proiecte. Aplicațiile pot fi combinații de vederi, modele, adrese URL de șablon, fișiere statice etc. Ele sunt adesea conectate în proiecte cu setarea INSTALLED-APPS . Poate fi adesea conectat cu alte mecanisme opțional, cum ar fi URLconfs, care este setarea MIDDLEWARE .

Citiți: Salariu pentru dezvoltatori Django în India

Aplicația Django este un set de coduri care creează interacțiuni cu mai multe părți ale unui cadru specific. Nu are obiect Aplicație. Uneori, Django poate avea nevoie să interacționeze cu anumite aplicații pentru introspecție sau configurare. Prin urmare, există metadate în AppConfig pentru aplicațiile instalate. Un pachet de proiect poate fi considerat și o aplicație și poate avea și modele.

Configurarea aplicațiilor Django

Dacă doriți să configurați o aplicație, trebuie să subclasați AppConfig și apoi să adăugați o linie punctată la aceasta în INSTALLED_Apps. Când primește linia punctată, Django începe să verifice variabila default_app_config . Odată definită, devine subclasa AppConfig pentru acea aplicație specifică. Dacă nu este creată default_app_config , Django va folosi clasa de bază AppConfig .

Citește și: Diferența dintre stiva completă și stiva medie

Pentru autorii aplicațiilor Django

Să presupunem că dezvoltați o aplicație conectabilă „Rock 'n' roll”. Apoi, puteți dezvolta un nume în felul următor:

# rock_n_roll/apps.py

din django.apps import AppConfig

clasa RockNRollConfig(AppConfig):

nume = 'rock_n_roll'

verbose_name = „Rock 'n' roll”

De asemenea, îl veți putea încărca ca subclasă AppConfig folosind:

# rock_n_roll/__init__.py

default_app_config = 'rock_n_roll.apps.RockNRollConfig'

Astfel, RockNRollConfig poate fi folosit atunci când „rock_n_roll” este prezent în aplicațiile instalate. Vă va ajuta să utilizați funcțiile AppConfig fără ca utilizatorii să fie nevoiți să facă actualizarea în INSTALLED_APPS.

Pentru utilizatorii aplicației

Să presupunem că utilizați aplicația Rock 'n' roll într-un proiect numit antologie. Acum, vrei să apară ca Jazz Manouche înainte de asta. Deci, puteți urma acești pași:

# anthology/apps.py

din rock_n_roll.apps import RockNRollConfig

clasa JazzManoucheConfig(RockNRollConfig):

verbose_name = „Jazz Manouche”

# antologie/settings.py

INSTALLED_APPS = [

„anthology.apps.JazzManoucheConfig”,

#…

]

clasa AppConfig

Metadatele pentru o aplicație sunt stocate în obiectele de configurare a aplicației. Unele dintre aceste atribute sunt configurate în subclasele AppConfig și sunt setate ca doar pentru citire sau de către Django.

Atribute configurabile

AppConfig.name

Calea: django.contrib.admin

Ajută la definirea aplicației în care se aplică configurația. Este setat în subclasele AppConfig. Unic într-un proiect Django.

AppConfig.label

Nume: admin

Ajută la reetichetarea unei aplicații, mai ales dacă două dintre ele au etichete conflictuale. Devine implicit ultima componentă a unui nume. Trebuie să fie un identificator valid pentru Python. Unic în proiectele Django.

AppConfig.nume_verbos

Nume: Administratie

Setarea implicită la: label.title()

AppConfig.path

Exemplu de director de aplicație: „/usr/lib/pythonX.Y/dist-packages/django/contrib/admin”

În multe cazuri, Django îl poate detecta și seta automat, dar puteți suprascrie atributul de clasă în mod explicit prin subclasa AppConfig.

Atribute numai pentru citire

AppConfig.module

Exemplu de modul rădăcină: <modul „django.contrib.admin” de la „django/contrib/admin/__init__.py”>

AppConfig.models_module

Exemplu de modul cu modele: <modul „django.contrib.admin.models” din „django/contrib/admin/models.py”>

Poate fi și None dacă nu conține modele.

Metode

AppConfig.get_models()

Va ajuta să returnați o clasă Model iterabilă pentru aplicare. Va fi necesar ca registrul aplicației să fie complet populat.

AppConfig.get_model

Returnează modelul specific cu majuscule și minuscule: nume_model. Numele modelului

Ajută la apariția unui LookupError dacă nu există un model specific. Va fi necesar ca registrul aplicației să fie complet populat.

AppConfig.ready()

Poate ajuta să suprascrieți metoda și, prin urmare, să efectuați sarcini de inițializare, cum ar fi înregistrarea semnalelor. Poate fi apelat odată ce registrul este complet populat. Cu toate acestea, nu puteți importa modele la nivel de modul în care sunt definite clase de AppConfig. Le puteți importa, totuși, în ready(), care utilizează get_model() sau instrucțiunea import.

Pachete cu spații de nume utilizate ca aplicații

Când un pachet Python nu are __init__.py, ele sunt cunoscute ca pachete cu spații de nume. Acestea pot fi răspândite în mai multe directoare și locații pe sys.path. Aplicația Django va avea nevoie de un sistem de fișiere de bază de semne în care Django, bazat pe configurație, va căuta elemente statice, șabloane etc. Prin urmare, aplicația Django poate fi utilizată numai dacă una dintre acestea este adevărată:

  • Pachetul de spațiu de nume are o singură locație.
  • Clasa AppConfig care este utilizată pentru configurarea aplicației are un atribut de clasă de cale.

Dacă niciuna dintre condiții nu este îndeplinită, atunci Django va afișa ImproperlyConfigured.

Registrul aplicațiilor Django

Anumite API publice sunt furnizate de registrul aplicației. Acestea sunt câteva dintre metode, deși se pot schimba:

aplicații.gata

Când atributul boolean este setat la True și registrul este complet populat și, prin urmare, toate metodele AppConfig.ready() sunt apelate.

apps.get_app_configs()

Va returna un iterabil de instanțe AppConfig.

apps.get_app_config(app_label)

Va returna un AppConfig pentru aplicația care are o dată app_label. Dacă nu există nicio aplicație, va genera o eroare LookupError.

apps.is_installed( Se va verifica dacă există un nume al aplicației date în prezentul registru. app_name va fi un nume complet al aplicației, de exemplu: django.contrib.admin

apps.get_model( Va returna modelul cu model_name și app_label date. Dacă nu există nicio aplicație, va genera o eroare LookupError.

Procesul de inițializare

Deci, acum întrebarea este cum să încărcați aplicațiile django. Pe măsură ce Django este inițiat, django.setup() va popula registrul.

setup( set_prefix=Adevărat )

Configurațiile Django apar:

  • Prin prima încărcare a setărilor
  • Configurarea conectării
  • Dacă set_prefix este adevărat, atunci prefixul de script revolver URL devine FORCE_SCRIPT_NAME dacă este definit sau altfel.
  • Registrul aplicației este inițializat.

Are loc apelarea automată a funcției:

  • Când serverul HTTP rulează printr-un suport WSGI al Django
  • Când comanda de management este invocată.

Depanați

Câteva probleme comune cu care s-ar putea confrunta sunt:

  • AppRegistryNotReady: Se întâmplă în timpul importului unui modul de configurare a aplicației sau modele declanșează cod care nu depinde de registrul aplicației. Dacă executați interogări la baza de date cu ORM, această problemă ar putea avea loc.
  • ImportError: nu se poate importa numele... – Are loc atunci când secvențele de import se termină într-o buclă. Puteți elimina procesul minimizând dependențele dintre modulele modelelor.
  • Django.contrib.admin provoacă descoperirea automată a modulelor de administrare. Schimbați INSTALLED_APPS din django.contrib.admin în django.contrib.admin.apps.SimpleAdminConfig pentru a preveni acest lucru.

Sperăm că acum puteți integra cu ușurință aplicațiile Django în dezvoltarea dvs. web.

Obțineți un curs de dezvoltare software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Dacă sunteți interesat să aflați mai multe despre Django și despre alte limbaje și instrumente pentru dezvoltatori full-stack, consultați programul Executive PG de la upGrad și IIIT-B în Dezvoltare software full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, Peste 9 proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Pregătiți-vă pentru o carieră a viitorului

Aplicați acum pentru masterat în inginerie software