Django web framework ima arhitekturu model-view-template (MVT), što ga čini jedinim okvirom koji će vam trebati za izradu cjelovite web stranice ili web aplikacije. Ovaj Python okvir omogućuje stvaranje modela koji generiraju baze podataka i generiraju dinamičke HTML predloške u korisničko sučelje koristeći poglede.

Moć Djanga nije tajna; brz je, pouzdan, skalabilan i siguran. Pouzdanost, kao i skalabilnost ovog softvera, oslanja se na njegovu MVT arhitekturu. A u ovom članku naučit ćete kako točno funkcionira Djangova MVT arhitektura.

Što je Djangov model?

Model u Django MVT arhitekturi definira strukturu i ponašanje podataka koje želite pohraniti putem svoje web stranice. Svaki Django model koji kreirate generira odgovarajuću tablicu baze podataka, gdje svaki atribut modela postaje polje u tablici.

Nastavljamo s postavljanjem iz naše uvodni članak o Djangu, možete stvoriti model za prodavače. Prodavatelj može imati model prodavatelja koji ima osobne podatke, kao što su ime i podaci za kontakt, te povezani model za artikle koje svaki prodavač prodaje.

instagram viewer

Postojeći primjer strukture Django projektne datoteke

moja stranica/
moja stranica/
_pycache_
_init_.py
asgi.py
settings.py
urls.py
wsgi.py
prodavači/
migracija
_init_.py
admin.py
apps.py
modeli.py
test.py
pogledi.py
db.sqlite3
upravljati.py

Izrada Django modela

Ako pogledate ispod odjeljka aplikacije prodavača u gornjoj strukturi datoteke, vidjet ćete datoteku pod nazivom modeli.py. Ovdje ćete stvoriti sve svoje Django modele za odjeljak prodavača vaše web stranice. Svaki model koji izradite bit će podklasa Djangov model API, zbog čega je svaki Django generiran modeli.py datoteka ima zadani uvoz modela.

Datoteka models.py

Iz django.db uvoznih modela

# Ovdje kreirajte svoje modele.

klasa Prodavač (modeli. Model):
ime = modeli. CharField (max_length=30)
prezime = modeli. CharField (max_length=30)
kontakt_broj = modeli. CharField (max_length=30)

klasa Proizvod (modeli. Model):
prodavač = modeli. ForeignKey (Prodavač, on_delete=modeli. KASKADA)
item_name = modeli. CharField (max_length=100)
artikl_količina = modeli. IntegerField()
artikl_cijena = modeli. Decimalno polje (max_digits=9, decimal_places=2)
item_description = modeli. Polje za tekst()

Gornji kod je kopija ažuriranog sadržaja model.py datoteka. Datoteka sada stvara dva modela — prodavač i proizvod. Ovi modeli dijele odnos jedan-prema-više, gdje jedan prodavač može imati mnogo proizvoda na rasprodaji. Dakle, model proizvoda ima a strani kljuc od prodavača i an on_delete atribut postavljen na modeli. KASKADA, što znači da kada izbrišete prodavača, automatski ćete izbrisati svaki proizvod koji to ima glavni ključ kao strani kljuc.

Povezano: Naučite Python i Django danas uz ove nevjerojatne tečajeve Također možete primijetiti da svaki od modela u kodu iznad nema primarni ključ. To je zato što će Django automatski generirati a glavni ključ ako ga izričito ne stvorite.

Prije nego što možete koristiti bilo koji model koji izradite, morat ćete reći Djangu gdje ga pronaći. Da biste to učinili, morat ćete prijeći na settings.py datoteku i umetnite naziv modula koji sadrži modeli.py datoteku, u INSTALLED_APP odjeljak.

U oglednom projektu za ovaj članak, modeli.py datoteka se nalazi u modulu prodavača. Stoga, ažurirani INSTALLED_APP odjeljak će glasiti kako slijedi:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'prodavači',
]

Uz gornji kod, modeli u aplikaciji prodavača sada su vidljivi na web stranici Django, a sada možete prijeći na migracije.

Provođenje migracija je važno jer je ovaj proces način širenja promjena koje napravite u svojim modelima na odgovarajuću shemu baze podataka. Dakle, svaki put kada unesete promjene u svoj model, morat ćete provesti proces migracije - koji uključuje dva koraka.

Prvi korak je napraviti migracije, što je naredba koja stvara migracije na temelju promjena otkrivenih u modeli.py datoteka. Da biste pokrenuli proces migracije, morat ćete otvoriti svoj terminal, ići do direktorija koji sadrži vaš Django projekt i pokrenuti poslužitelj pomoću sljedeće naredbe:

python manage.py runserver

Dok poslužitelj radi u jednom terminalu, otvorite novi terminal i unesite sljedeću naredbu:

python manage.py makemigrations

Nakon izvršenja, terminal će proizvesti sljedeći izlaz:

Migracije za 'prodavače':
sellers\migrations\0001_initial.py
- Napravite model prodavača
- Kreirajte model proizvoda

Gornji izlaz jasno kaže da sada imate migracije za dva modela — prodavača i proizvod. Sada, ako odete do mape za migraciju u modulu svojih prodavača, vidjet ćete da sada ima novu datoteku pod nazivom 0001_inicial.py. Unutar ove datoteke pronaći ćete migracije koje ste upravo stvorili.

Datoteka 0001_initial.py

# Generirao Django 3.2.9 26.02.2022. 16:06

s django.db uvoz migracija, modela
import django.db.models.deletion

razred Migracije (migracije. Migracija):

početno = Istina

ovisnosti = [
]

operacije = [
migracije. CreateModel(
name='Prodavač',
polja=[
('id', modeli. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('ime', modeli. CharField (max_length=30)),
('prezime', modeli. CharField (max_length=30)),
('contact_number', modeli. CharField (max_length=30)),
],
),
migracije. CreateModel(
name='Proizvod',
polja=[
('id', modeli. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('item_name', modeli. CharField (max_length=100)),
('item_qantity', modeli. IntegerField()),
('item_price', modeli. decimalno polje (decimalna_mjesta=2, maks. znamenki=9)),
('item_description', modeli. Polje za tekst()),
('prodavač', modeli. ForeignKey (on_delete=django.db.models.deletion. CASCADE, to='sellers.seller')),
],
),
]

Svaki put kada napravite novu migraciju, mapa za migraciju generira novu verziju ove datoteke.

Drugi korak procesa migracije je konačna migracija modela. To znači da sinkronizirate stanje baze podataka sa modeli.py datoteku, koristeći migracije koje ste upravo stvorili u 0001_inicial.py datoteka. Ovaj proces možete dovršiti (dok poslužitelj još uvijek radi) sljedećom naredbom:

python management.py migrirati

Što je Djangov predložak?

Predlošci su način za dinamičko generiranje HTML-a za vaš Django projekt. Svaki Django predložak ima .html proširenje i kombinacija statičkog i dinamičkog sadržaja. Django predlošci imaju jedinstvenu sintaksu koja uključuje nove načine stvaranja varijabli i oznaka u HTML dokumentu.

Izrada Django predloška

Da biste uveli predloške na primjer web-mjesta e-trgovine za ovaj članak, morat ćete stvoriti novi direktorij u modulu prodavača. Ovaj novi direktorij pod nazivom "predlošci" bit će dom svih HTML dokumenata za aplikaciju prodavača - počevši od početne stranice.

Datoteka sellers_home.html





Prodavci | E-trgovina


Dobro došli prodavači!




Nakon što izradite svoje predloške, morat ćete ih učiniti vidljivima Djangu dodavanjem direktorija predložaka u PREDLOŠCI odjeljak od settings.py datoteka. Ažurirano PREDLOŠCI odjeljak će izgledati ovako:

PREDLOŠCI = [
{
'BACKEND': 'django.template.backends.django. DjangoTemplates',
'DIRS': [
# novi kod koji ukazuje na lokaciju predložaka
BASE_DIR / 'prodavači' / 'predlošci'
],
'APP_DIRS': Istina,
'OPCIJE': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

Sada kada Django zna gdje pronaći predloške za web stranicu, možete nastaviti i renderirati ih u korisničko sučelje pomoću prikaza.

Kakav je Djangov pogled?

Pogled je drugi sloj Djangove MVT arhitekture, predložak je beskoristan osim ako ga pogled ne prikaže korisničkom sučelju. Pogled je odgovoran za prihvaćanje web zahtjeva i vraćanje odgovarajućih odgovora (uključujući predloške). U svom najosnovnijem obliku, pogled je funkcija Python, pohranjena u view.py datoteku vašeg Django projekta.

Stvaranje Django Viewa

The view.py datoteka se nalazi u modulu prodavača uzorka Django projekta. Kada prodavač posjeti vašu web-lokaciju, željet ćete da ode na početnu stranicu prodavača. Ovu početnu stranicu izradit ćete pomoću HTML predloška, ​​slično onom stvorenom u gornjem odjeljku predloška.

Datoteka view.py

iz django.shortcuts import render

def indeks (zahtjev):
povratna render (zahtjev, 'sellers_home.html')

Gornji prikaz uzima zahtjev i vraća HTML predložak prodavača. Dakle, svaki put kada korisnik posjeti (ili zatraži) http://127.0.0.1:8000/sellers/ vidjet će početnu stranicu prodavača. Ovo je nakon što kreirate a urls.py datoteku u modulu prodavača.

Datoteka Sellers urls.py

iz django.url puta uvoza
iz. uvoz pogleda

url obrasci = [
put('', views.index, name='index'),
]

I uključite put do modula prodavača urls.py datoteku u urls.py datoteka koja se nalazi u glavnom Django direktoriju.

Datoteka urls.py web-mjesta

od django.contrib import admin
iz django.urls import include, path

url obrasci = [
path('sellers/', include('sellers.urls')),
put('admin/', admin.site.urls),
]

Sada kada je prikaz postavljen, možete osigurati da je Django poslužitelj još uvijek pokrenut i ići na njega http://127.0.0.1:8000/sellers/ u svom pregledniku da biste vidjeli početnu stranicu prodavača.

Početna stranica prodavača

Djangoova MVT arhitektura vs. MVC arhitektura

Djangoova MVT arhitektura prilično se razlikuje od popularne MVC arhitekture.

Predložak u MVT arhitekturi radi na isti način kao i pogled u MVC arhitekturi, dok pogled u MVT arhitekturi prikazuje kvalitete koji su slični kontroleru u MVC-u arhitektura. Međutim, modeli u obje arhitekture rade identično.

Uvod u MVC arhitekturu: objašnjeni primjeri

Primijenite principe dizajna modela-pogleda-kontrolera na svoje programe za trenutne rezultate. Evo kako započeti.

Pročitajte dalje

UdioCvrkutE-mail
Povezane teme
  • Programiranje
  • Programiranje
  • Piton
O autoru
Kadeisha Kean (Objavljeno 46 članaka)

Kadeisha Kean je programerka punog softvera i tehnička/tehnološka spisateljica. Ona ima izrazitu sposobnost da pojednostavi neke od najsloženijih tehnoloških koncepata; proizvodnju materijala koji svaki početnik u tehnologiji može lako razumjeti. Ona je strastvena u pisanju, razvoju zanimljivog softvera i putovanju svijetom (kroz dokumentarne filmove).

Više od Kadeishe Kean

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu