Webový rámec Django má architektúru model-view-template (MVT), čo z neho robí jediný rámec, ktorý budete potrebovať na vytvorenie kompletnej webovej stránky alebo webovej aplikácie. Tento rámec Pythonu vám umožňuje vytvárať modely, ktoré generujú databázy a vykresľujú dynamické šablóny HTML do používateľského rozhrania pomocou zobrazení.
Sila Djanga nie je žiadnym tajomstvom; je rýchly, spoľahlivý, škálovateľný a bezpečný. Spoľahlivosť, ako aj škálovateľnosť tohto softvéru, závisí od jeho architektúry MVT. A v tomto článku sa dozviete, ako presne funguje architektúra MVT spoločnosti Django.
Aký je Djangoov model?
Model v architektúre MVT spoločnosti Django definuje štruktúru a správanie údajov, ktoré chcete ukladať prostredníctvom svojich webových stránok. Každý model Django, ktorý vytvoríte, vygeneruje zodpovedajúcu databázovú tabuľku, kde sa každý atribút modelu stane poľom v tabuľke.
Pokračujeme v nastavení od nášho úvodný článok o Djangovi, môžete vytvoriť model pre predajcov. Predajca môže mať model predajcu, ktorý obsahuje osobné informácie, ako je meno a kontaktné údaje, a súvisiaci model pre položky, ktoré každý predajca predáva.
Existujúca vzorová štruktúra súboru projektu Django
moja stránka/
moja stránka/
_pycache_
_init_.py
asgi.py
settings.py
urls.py
wsgi.py
predajcovia/
migrácia
_init_.py
admin.py
apps.py
modely.py
test.py
views.py
db.sqlite3
spravovať.py
Vytváranie modelov Django
Ak sa pozriete do časti aplikácie predajcov v štruktúre súborov vyššie, uvidíte súbor s názvom modely.py. Tu vytvoríte všetky svoje modely Django pre sekciu predajcov na vašom webe. Každý model, ktorý vytvoríte, bude podtriedou Django's Model API, čo je dôvod, prečo každý Django vygeneroval modely.py súbor má predvolený import modelov.
Súbor models.py
Import modelov z django.db
# Tu si vytvorte svoje modely.
trieda Predajca (modely. Model):
krstné meno = modelky. CharField (max_length=30)
priezvisko = modelky. CharField (max_length=30)
kontaktné_číslo = modely. CharField (max_length=30)
trieda Produkt (modely. Model):
predajca = modely. ForeignKey (Predajca, on_delete=models. KASKÁDA)
item_name = modely. CharField (max_length=100)
item_quantity = modely. IntegerField()
item_price = modely. DecimalField (max_digits=9, decimal_places=2)
item_description = modely. Textové pole()
Vyššie uvedený kód je kópiou aktualizovaného obsahu model.py súbor. Súbor teraz vytvorí dva modely – Predajcu a Produkt. Tieto modely zdieľajú vzťah typu one-to-many, kde jeden predajca môže mať v predaji veľa produktov. Takže model produktu má a cudzí kľúč od predávajúceho a an on_delete atribút nastavený na modelov. KASKÁDA, čo znamená, že keď vymažete predajcu, automaticky vymažete aj každý produkt, ktorý to má primárny kľúč ako cudzí kľúč.
Súvisiace: Naučte sa Python a Django ešte dnes pomocou týchto úžasných kurzov Môžete si tiež všimnúť, že každý z modelov v kóde vyššie nemá primárny kľúč. Je to preto, že Django automaticky vygeneruje a primárny kľúč ak ho výslovne nevytvoríte.
Predtým, ako budete môcť použiť akýkoľvek model, ktorý vytvoríte, musíte Djangovi povedať, kde ho nájde. Ak to chcete urobiť, musíte prejsť na settings.py a vložte názov modulu, ktorý obsahuje modely.py súbor, do INSTALLED_APP oddiele.
Vo vzorovom projekte pre tento článok modely.py súbor je v module predajcov. Preto aktualizované INSTALLED_APP oddiel bude znieť takto:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'predajcovia',
]
Pomocou vyššie uvedeného kódu sú teraz modely v aplikácii predajcov viditeľné na webovej stránke Django a teraz môžete prejsť na migráciu.
Vykonávanie migrácií je dôležité, pretože tento proces predstavuje spôsob rozšírenia zmien, ktoré vykonáte vo svojich modeloch, do zodpovedajúcej schémy databázy. Takže zakaždým, keď vykonáte zmeny vo svojom modeli, budete musieť vykonať proces migrácie, ktorý zahŕňa dva kroky.
Prvým krokom je vykonanie migrácií, čo je príkaz, ktorý vytvára migrácie na základe zmien zistených v súbore modely.py súbor. Ak chcete spustiť proces migrácie, musíte otvoriť svoj terminál, prejsť do adresára s vaším projektom Django a spustiť server pomocou nasledujúceho príkazu:
python manage.py runserver
Keď je server spustený v jednom termináli, otvorte nový terminál a zadajte nasledujúci príkaz:
python manage.py makemigrations
Po spustení terminál vytvorí nasledujúci výstup:
Migrácie pre „predajcov“:
predajcovia\migrácie\0001_initial.py
- Vytvorte model Predajcu
- Vytvorte modelový produkt
Vyššie uvedený výstup jasne uvádza, že teraz máte migrácie pre dva modely – predajcu a produkt. Ak teraz prejdete do priečinka migrácie v module vašich predajcov, uvidíte, že teraz má nový súbor s názvom 0001_initial.py. V tomto súbore nájdete migrácie, ktoré ste práve vytvorili.
Súbor 0001_initial.py
# Vygeneroval Django 3.2.9 dňa 26.02.2022 16:06z django.db importovať migrácie, modely
importovať django.db.models.deletion
trieda Migrácia (migrácia. Migrácia):
počiatočné = pravda
závislosti = [
]
operácie = [
migrácie. CreateModel(
name='Predajca',
polia=[
(„id“, modely. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
(„first_name“, modely. CharField (max_length=30)),
('priezvisko', modelky. CharField (max_length=30)),
(„contact_number“, modely. CharField (max_length=30)),
],
),
migrácie. CreateModel(
name='Produkt',
polia=[
(„id“, modely. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('názov_položky', modely. CharField (max_length=100)),
('item_qantity', modely. IntegerField()),
('item_price', modely. DecimalField (decimal_places=2, max_digits=9)),
('popis_položky', modely. Textové pole()),
(„predajca“, modely. ForeignKey (on_delete=django.db.models.deletion. CASCADE, to='sellers.seller')),
],
),
]
Vždy, keď vykonáte novú migráciu, priečinok migrácie vygeneruje novú verziu tohto súboru.
Druhým krokom procesu migrácie je konečná migrácia modelov. To znamená, že synchronizujete stav databázy s modely.py pomocou migrácií, ktoré ste práve vytvorili v súbore 0001_initial.py súbor. Tento proces môžete dokončiť (keď je server stále spustený) pomocou nasledujúceho príkazu:
python manage.py migrovať
Čo je to Django's Template?
Šablóny predstavujú spôsob, ako dynamicky generovať HTML pre váš projekt Django. Každá šablóna Django má .html rozšírenie a kombinácia statického a dynamického obsahu. Šablóny Django majú jedinečnú syntax, ktorá zahŕňa nové spôsoby vytvárania premenných a značiek v dokumente HTML.
Vytvorenie šablóny Django
Ak chcete zaviesť šablóny na vzorovom webe elektronického obchodu pre tento článok, budete musieť vytvoriť nový adresár v module predajcov. Tento nový adresár s názvom „šablóny“ bude domovom všetkých dokumentov HTML pre aplikáciu predajcov – počnúc domovskou stránkou.
Súbor sellers_home.html
Predajcovia | Elektronický obchod
Vitajte predajcovia!
Po vytvorení šablón ich budete musieť zviditeľniť pre Django pridaním adresára šablón do ŠABLÓNY časť settings.py súbor. Aktualizované ŠABLÓNY sekcia bude vyzerať nasledovne:
ŠABLÓNY = [
{
'BACKEND': 'django.template.backends.django. DjangoTemplates',
'DIRS': [
# nový kód, ktorý ukazuje na umiestnenie šablón
BASE_DIR / 'predajcovia' / 'šablóny'
],
'APP_DIRS': Pravda,
'MOŽNOSTI': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Teraz, keď Django vie, kde nájsť šablóny pre web, môžete pokračovať a vykresliť ich do používateľského rozhrania pomocou zobrazenia.
Aký je Django's View?
Zobrazenie je druhou vrstvou architektúry MVT spoločnosti Django, šablóna je zbytočná, pokiaľ ju zobrazenie nevykreslí do používateľského rozhrania. Pohľad je zodpovedný za prijímanie webových požiadaviek a vracanie vhodných odpovedí (vrátane šablón). Vo svojej najzákladnejšej forme je pohľad funkciou Pythonu uloženou v view.py súbor vášho projektu Django.
Vytvára sa zobrazenie Django
The view.py súbor sa nachádza v module predajcov vzorového projektu Django. Keď predajca navštívi váš web, budete chcieť, aby prešiel na domovskú stránku predajcu. Túto domovskú stránku vytvoríte pomocou šablóny HTML, podobnej tej, ktorá bola vytvorená v sekcii šablón vyššie.
Súbor view.py
z django.shortcuts import render
def index (požiadavka):
vrátiť vykreslenie (požiadavka, 'sellers_home.html')
Vyššie uvedené zobrazenie prijme požiadavku a vráti HTML šablónu predajcov. Takže zakaždým, keď používateľ navštívi (alebo požiada) http://127.0.0.1:8000/sellers/ uvidia domovskú stránku predajcov. Toto je po vytvorení a urls.py súbor v module predajcov.
Súbor Sellers urls.py
z cesty importu django.urls
od. importovať zobrazenia
urlpatterns = [
cesta('', views.index, name='index'),
]
A uveďte cestu k modulu predajcov urls.py súbor v urls.py súbor umiestnený v hlavnom adresári Django.
Súbor webových stránok urls.py
od správcu importu django.contrib
z django.urls import include, path
urlpatterns = [
path('sellers/', include('sellers.urls')),
cesta('admin/', admin.site.urls),
]
Teraz, keď je zobrazenie nastavené, môžete sa uistiť, že server Django stále beží a môžete naň prejsť http://127.0.0.1:8000/sellers/ vo svojom prehliadači, aby ste videli domovskú stránku predajcov.
Domovská stránka predajcov
Architektúra Django's MVT Architecture vs. Architektúra MVC
Architektúra MVT spoločnosti Django je úplne odlišná od populárnej architektúry MVC.
Sekcia šablóny architektúry MVT funguje v podstate rovnakým spôsobom ako pohľad v architektúre MVC, zatiaľ čo pohľad v architektúre MVT zobrazuje vlastnosti, ktoré sú podobné regulátoru v MVC architektúra. Modely v oboch architektúrach však fungujú identicky.
Aplikujte princípy návrhu Model-View-Controller na svoje vlastné programy pre okamžité výsledky. Tu je návod, ako začať.
Prečítajte si ďalej
- Programovanie
- Programovanie
- Python
Kadeisha Kean je vývojár úplného softvéru a technicko-technologický spisovateľ. Má výraznú schopnosť zjednodušiť niektoré z najzložitejších technologických konceptov; produkovať materiál, ktorý je ľahko zrozumiteľný pre každého technologického nováčika. Je nadšená písaním, vývojom zaujímavého softvéru a cestovaním po svete (prostredníctvom dokumentárnych filmov).
prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!
Kliknutím sem sa prihlásite na odber