Arendage Django raamistikus olevate projektide ja rakenduste rollide ja funktsioonide põhjalik mõistmine.

Djangos saate veebirakenduse loomiseks kasutada kahte peamist komponenti; rakendused ja projektid. Arendajad kasutavad neid termineid mõnikord vaheldumisi, kuigi neil on Django veebiraamistikus erinevad tähendused ja funktsioonid.

Django projektide mõistmine

Djangos on projekt teie veebirakenduse tipptasemel konteiner. Projekt sisaldab teie veebirakenduse ja ühe või mitme rakenduse konfiguratsioone, millest igaüks pakub teie veebirakendusele teatud funktsioone või funktsioone. See sisaldab ka kõiki selle erinevate rakenduste vahel jagatud komponente. Django projektist leiate tööriistu ja utiliite, mis muudavad teie veebirakenduse haldamise lihtsaks, näiteks Django käsurea utiliit ja Django arendusserver.

Django projekti komponendid

Django projekt sisaldab tavaliselt erinevaid rakendusi ja teie veebirakenduse konfiguratsioone. Iga kord, kui loote uue projekti, loob Django automaatselt neid konfiguratsioone sisaldavad failid. Django projektis sisalduvad komponendid on järgmised:

  1. Seaded: seadete moodul sisaldab teie projekti ja teie projekti üksikute rakenduste jaoks vajalikke konfiguratsioone. See moodul sisaldab peamiselt konfiguratsioonivalikuid, nagu andmebaasiühendus, vahevara, installitud rakendus, lubatud hostid ja muud teie veebirakenduse töötamiseks vajalikud konfiguratsioonid.
  2. URL-id: URL-ide moodul määrab teie rakenduse jaoks URL-i mustri. Iga teie projekti URL-i muster võib vastendada teie rakenduse mõne muu URL-i mustriga või otse kuvamisfunktsiooniga, mis käsitleb konkreetse URL-i päringut. Olenemata sellest, kas URL-i muster vastendatakse teie rakenduse vaatefunktsiooniga või mõne muu URL-i mustriga, on lõppeesmärk kaardistada see vaatega, mis taotlust tõhusalt käsitleb.
  3. WSGI: WSGI (Web Server Gateway Interface) moodul on Pythoni standard veebiserverite ja rakenduste jaoks. WSGI moodul võimaldab Djangol töötada erinevates serverites.
  4. ASGI: ASGI (Asynchronous Server Gateway Interface) moodul käsitleb asünkroonseid päringuid, nagu WebSocketsi ühendused. ASGI on Pythoni veebirakendustega suhtlemiseks mõeldud asünkroonsete veebiserverite standard.
  5. Muud komponendid: Mõnikord peate sõltuvalt rakenduse nõuetest lisama oma Django projektile oma komponendid. Need komponendid hõlmavad staatilisi faile, malle, meediumifaile ja kohandatud halduskäske.

Kuidas luua Django projekti

Django projekti loomiseks peaksite kasutama django-admin käsurea utiliit. Saate luua oma Django projekti, järgides neid samme:

  1. Liikuge käsurea liideses kataloogi, kuhu soovite oma Django projekti luua.
  2. Installige Django pip-paketihalduriga.
    pip install django
  3. Tippige järgmine käsk ja käivitage see:
    django-admin käivitusprojekt 

Ülaltoodud käsk loob sellise kataloogi:

Märkate oma projektikataloogi nimedes liiasust, st teie projekti nimi ilmub kaks korda. Kui soovite sellest vabaneda, saate lisada perioodi, millal oma projekti käivitamine käsk selline:

django-admin käivitusprojekt  .

Nüüd näeb teie projekti struktuur välja järgmine:

Ülaltoodud sammudega peate olema edukalt loonud Django projekti. The manager.py teie projektis loodud fail on teie Django projektiga suhtlemiseks oluline.

Django rakenduse mõistmine

Rakenduse eesmärk on pakkuda teie Django projektile spetsiifilisi funktsioone. Rakendus aitab teil koodibaasi korrastada, jagades projekti funktsioonid väiksemateks komponentideks.

Näiteks ajaveebiprojektis on teil autentimisele ja autoriseerimisele pühendatud rakendus ning teine ​​ajaveebipostitustele pühendatud rakendus. Saate luua mitu rakendust vastavalt oma projekti vajadustele.

Django rakenduse komponendid

Django rakendus koosneb moodulitest, mis on seotud projektiga, st teie veebisaidi konkreetse funktsiooniga. Nagu projekti puhul, genereerib Django rakenduse loomisel automaatselt kasulikke faile. Django loodud failid hõlmavad järgmist:

  1. views.py: see fail sisaldab kogu päringute vastuvõtmiseks ja vastuste saatmiseks vajalikku loogikat. Samuti määrab see, millist HTML-i malli renderdada, lähtudes kasutaja tegevusest teie veebisaidil.
  2. mudelid.py: see moodul loob teie rakenduse andmestruktuuri ja määrab, kuidas andmebaas seda salvestab. See kasutab andmete määratlemiseks Django ORM-i (Object-Relational Mapping). Mudeli komponent määratleb erinevaid andmebaasi seosed Djangos.
  3. admin.py: administraatorimoodul määrab teie Django rakenduse haldusliidese. Peaksite oma mudelid registreerima administraatorifailis. Kui vajate lisaks Django pakutavatele täiendavaid administraatori funktsioone, saate selles moodulis määrata oma administraatoriliidese jaoks kohandatud vaated.
  4. urls.py: see fail määrab konkreetse Django rakenduse jaoks ainulaadsed URL-i mustrid või marsruudid. Mõnikord ei genereeri Django seda faili automaatselt. Kui see juhtub, saate selle oma rakenduste kataloogis käsitsi luua.

Django genereerib mõningaid muid komponente, nt apps.py ja testid.py. Need failid määravad teie rakenduse konfiguratsioonid ja võimaldavad teil kirjutada vastavalt ühikuteste.

Kuidas luua Django rakendust

Enne rakenduse loomist peate olema loonud projekti. Pärast projekti loomist liikuge kataloogi, mis sisaldab manager.py faili ja käivitage terminalis järgmine käsk:

python manage.py stardiprojekt 

Ülaltoodud käsk loob teie projektiga samal kataloogitasemel sellise kaustastruktuuri:

Erinevus rakenduse ja projekti vahel Djangos

Django projekti ja rakenduse vahel on mõned selged erinevused. Mõned neist on loetletud allpool.

Koodi korduvkasutatavus

Djangos on rakendus teie veebirakenduse korduvkasutatav komponent. See tähendab, et kui teil on rakendus, mis tegeleb kasutaja autentimisega ühe projekti jaoks, saate sama rakendust mõnes teises projektis uuesti kasutada ilma või väikeste muudatustega. Projekt seevastu ei ole korduvkasutatav. Kui olete konkreetse veebirakenduse jaoks projekti loonud, ei saa te seda teise rakenduse jaoks kasutada.

Tegevusala

Projekt toimib kõrgemal tasemel kui rakendus, kuna see vastutab teie veebisaidi üldise konfigureerimise ja haldamise eest. Teisest küljest vastutab rakendus ainult teie veebisaidi konkreetse funktsiooni või funktsioonide eest.

Kausta struktuur

Kõige ilmsem erinevus rakenduse ja projekti vahel on nende kaustastruktuurid. Projekt sisaldab tavaliselt sätteid ja muid konfiguratsioonifaile, mis vastutavad teie veebisaidi heaolu eest.

Järgneb rakendus Django MVT arhitektuur. See sisaldab ainult faile ja konfiguratsioone, mis vastutavad teie veebisaidi konkreetse funktsiooni heaolu eest.

Teie projekt ja rakendus töötavad koos, et luua hea veebirakendus

Kuigi teie projektil ja rakendusel on oma unikaalsus, kasutatakse neid lõpuks selleks, et pakkuda teile rakenduse loomisel sujuvat kogemust. Veebirakenduse loomiseks ja kohandamiseks peaksite saama kombineerida nii projekti kui ka rakenduse komponente. Kui teie rakendus ja projekt on paigas, saate hakata Djangoga oma veebisaiti looma.