Razvijte snažno razumijevanje uloga i funkcija projekata i aplikacija unutar Django okvira.

U Djangu možete koristiti dvije primarne komponente za izradu web aplikacije; aplikacije i projekte. Programeri ponekad koriste ove izraze naizmjenično, iako imaju različita značenja i funkcije u Django web okviru.

Razumijevanje Django projekata

U Djangu, projekt je spremnik najviše razine za vašu web aplikaciju. Projekt sadrži konfiguracije za vašu web-aplikaciju i jednu ili više aplikacija, od kojih svaka pruža određeni skup funkcionalnosti ili značajki za vašu web-aplikaciju. Također sadrži sve komponente koje se dijele između njegovih različitih aplikacija. U Django projektu možete pronaći alate i pomoćne programe koji olakšavaju upravljanje vašom web aplikacijom, kao što je Django pomoćni program naredbenog retka i Django razvojni poslužitelj.

Komponente Django projekta

Django projekt obično sadrži različite aplikacije i konfiguracije vaše web aplikacije. Kad god izradite novi projekt, Django automatski generira datoteke koje sadrže te konfiguracije. Komponente uključene u Django projekt su:

instagram viewer

  1. postavke: Modul postavki sadrži konfiguracije potrebne za vaš projekt i pojedinačne aplikacije u vašem projektu. Ovaj modul prvenstveno sadrži opcije konfiguracije kao što su veza s bazom podataka, međuprogramska oprema, instalirana aplikacija, dopušteni hostovi i druge konfiguracije potrebne za rad vaše web aplikacije.
  2. URL-ovi: URL modul definira URL obrazac za vašu aplikaciju. Svaki URL uzorak u vašem projektu može se preslikati na drugi URL uzorak u vašoj aplikaciji ili izravno na funkciju prikaza koja obrađuje zahtjev za određeni URL. Bez obzira na to mapira li se URL uzorak na funkciju pogleda ili neki drugi URL uzorak u vašoj aplikaciji, krajnji je cilj mapirati ga na pogled koji učinkovito obrađuje zahtjev.
  3. WSGI: WSGI (Web Server Gateway Interface) modul je Python standard za web poslužitelje i aplikacije. WSGI modul omogućuje Django rad na različitim poslužiteljima.
  4. ASGI: Modul ASGI (Asynchronous Server Gateway Interface) obrađuje asinkrone zahtjeve kao što su WebSockets veze. ASGI je standard za asinkrone web poslužitelje za komunikaciju s Python web aplikacijama.
  5. Ostale komponente: Ponekad ćete morati dodati vlastite komponente svom Django projektu, ovisno o zahtjevima vaše aplikacije. Ove komponente uključuju statičke datoteke, predloške, medijske datoteke i prilagođene naredbe za upravljanje.

Kako stvoriti Django projekt

Da biste stvorili Django projekt, trebali biste koristiti django-admin uslužni program naredbenog retka. Svoj Django projekt možete izraditi slijedeći ove korake:

  1. U sučelju naredbenog retka idite do direktorija u kojem želite stvoriti svoj Django projekt.
  2. Instalirajte Django s upraviteljem paketa pip.
    pip instaliraj django
  3. Upišite sljedeću naredbu i pokrenite je:
    django-admin startproject 

Gornja naredba će stvoriti direktorij poput ovog:

Primijetit ćete redundanciju u imenima direktorija vašeg projekta, tj. naziv vašeg projekta pojavljuje se dvaput. Ako se toga želite riješiti, možete dodati razdoblje kada pokrenete svoj pokrenuti projekt naredba ovako:

django-admin startproject  .

Sada će vaša struktura projekta izgledati ovako:

Uz gore navedene korake, sigurno ste uspješno kreirali Django projekt. The upravljati.py datoteka stvorena u vašem projektu važna je za interakciju s vašim Django projektom.

Razumijevanje Django aplikacije

Svrha aplikacije je pružiti vašem Django projektu određenu funkcionalnost. Aplikacija vam pomaže organizirati svoju bazu kodova razbijanjem funkcionalnosti vašeg projekta na manje komponente.

Na primjer, u blog projektu imat ćete aplikaciju posvećenu autentifikaciji i autorizaciji i drugu posvećenu postovima na blogu. Možete izraditi više aplikacija na temelju specifičnih potreba vašeg projekta.

Komponente Django aplikacije

Django aplikacija sastoji se od modula koji se odnose na projekt, odnosno na određenu značajku vaše web stranice. Kao i kod projekta, Django automatski generira korisne datoteke kada izradite aplikaciju. Datoteke koje generira Django uključuju sljedeće:

  1. pogledi.py: Ova datoteka će sadržavati svu logiku potrebnu za primanje zahtjeva i slanje odgovora. Također određuje koji HTML predložak treba prikazati na temelju radnji korisnika na vašoj web stranici.
  2. modeli.py: Ovaj modul uspostavlja strukturu podataka vaše aplikacije i određuje kako će baza podataka to pohraniti. Koristi Djangov ORM (Object-Relational Mapping) za definiranje podataka. Komponenta modela definira različite odnosi baze podataka u Djangu.
  3. admin.py: Administratorski modul definira administrativno sučelje vaše Django aplikacije. Trebali biste registrirati svoje modele unutar admin datoteke. Ako trebate dodatne administrativne funkcije osim onih koje nudi Django, možete definirati prilagođene poglede za svoje administrativno sučelje u ovom modulu.
  4. urls.py: Ova datoteka definira URL obrasce ili rute jedinstvene za određenu Django aplikaciju. Ponekad Django ne generira ovu datoteku automatski. Ako se to dogodi, možete je ručno izraditi u direktoriju svoje aplikacije.

Django generira neke druge komponente, kao npr aplikacije.py i testovi.py. Ove datoteke definiraju konfiguracije vaše aplikacije i omogućuju vam pisanje jediničnih testova.

Kako stvoriti Django aplikaciju

Prije izrade aplikacije morate izraditi projekt. Nakon što stvorite svoj projekt, idite do direktorija koji sadrži upravljati.py datoteku i pokrenite sljedeću naredbu na svom terminalu:

python management.py startproject 

Gornja naredba stvorit će strukturu mapa poput ove na istoj razini direktorija kao i vaš projekt:

Razlika između aplikacije i projekta u Djangu

Postoje neke jasne razlike između projekta i aplikacije u Djangu. Neki od njih navedeni su u nastavku.

Mogućnost ponovne upotrebe koda

U Djangu je aplikacija višekratna komponenta vaše web aplikacije. To znači da ako imate aplikaciju koja upravlja provjerom autentičnosti korisnika za jedan projekt, možete ponovno upotrijebiti istu aplikaciju u drugom projektu s malim ili nikakvim promjenama. S druge strane, projekt se ne može ponovno koristiti. Nakon što izradite projekt za određenu web aplikaciju, ne možete ga koristiti za drugu aplikaciju.

Opseg rada

Projekt radi na višoj razini od aplikacije jer je odgovoran za cjelokupnu konfiguraciju i upravljanje vašim web mjestom. S druge strane, aplikacija je odgovorna samo za određenu značajku ili funkcionalnost vaše web stranice.

Struktura mape

Najočitija razlika između aplikacije i projekta je njihova struktura mapa. Projekt obično uključuje postavke i druge konfiguracijske datoteke odgovorne za dobrobit vaše web stranice.

Slijedi aplikacija Djangova MVT arhitektura. Sadrži samo datoteke i konfiguracije odgovorne za dobrobit određene značajke vaše web stranice.

Vaš projekt i aplikacija zajedno stvaraju dobru web-aplikaciju

Iako vaš projekt i aplikacija imaju svoju jedinstvenost, oni se u konačnici koriste za pružanje besprijekornog iskustva pri izradi vaše aplikacije. Trebali biste moći kombinirati komponente projekta i aplikacije za izradu i prilagodbu svoje web aplikacije. Sa svojom aplikacijom i projektom možete početi graditi svoju web stranicu s Djangom.