Django veebiraamistikul on mudelivaatemalli (MVT) arhitektuur, mis teeb sellest ainsa raamistiku, mida vajate tervikliku veebisaidi või veebirakenduse loomiseks. See Pythoni raamistik võimaldab teil luua mudeleid, mis genereerivad andmebaase ja renderdavad vaadete abil kasutajaliidesesse dünaamilisi HTML-malle.

Django jõud pole saladus; see on kiire, usaldusväärne, skaleeritav ja turvaline. Selle tarkvara töökindlus ja mastaapsus sõltuvad selle MVT arhitektuurist. Sellest artiklist saate täpselt teada, kuidas Django MVT arhitektuur töötab.

Mis on Django mudel?

Django MVT arhitektuuri mudel määratleb nende andmete struktuuri ja käitumise, mida soovite oma veebisaidi kaudu salvestada. Iga loodud Django mudel genereerib vastava andmebaasitabeli, kus iga mudeli atribuut muutub tabelis väljaks.

Jätkame seadistamisega meie lehelt sissejuhatav artikkel Django kohta, saate müüjate jaoks luua mudeli. Müüjal võib olla müüja mudel, millel on isiklik teave, nagu nimi ja kontaktandmed, ning iga müüja müüdavate kaupade seotud mudel.

instagram viewer

Olemasolev Django projekti failistruktuur

minu sait/
minu sait/
_pycache_
_init_.py
asgi.py
settings.py
urls.py
wsgi.py
müüjad/
ränne
_init_.py
admin.py
apps.py
mudelid.py
test.py
views.py
db.sqlite3
manager.py

Django mudelite loomine

Kui vaatate ülaltoodud failistruktuuris müüjate rakenduste jaotist, näete faili nimega mudelid.py. Siin saate luua kõik oma Django mudelid oma veebisaidi müüjate jaotise jaoks. Iga teie loodud mudel on alamklass Django mudeli API, mistõttu on iga Django loodud mudelid.py failil on vaikemudelite import.

Fail models.py

Django.db impordimudelitest

# Looge siin oma mudelid.

klass Müüja (mudelid. Mudel):
eesnimi = mudelid. CharField (max_length=30)
perekonnanimi = mudelid. CharField (max_length=30)
kontakti_number = mudelid. CharField (max_length=30)

klassi Toode (mudelid. Mudel):
müüja = mudelid. ForeignKey (müüja, on_delete=models. CASCADE)
üksuse_nimi = mudelid. CharField (max_length=100)
item_qantity = mudelid. IntegerField()
kauba_hind = mudelid. Kümnendväli (max_digits=9, decimal_places=2)
item_description = mudelid. Tekstiväli()

Ülaltoodud kood on koopia värskendatud sisust mudel.py faili. Fail loob nüüd kaks mudelit – müüja ja toode. Nendel mudelitel on üks-mitmele suhe, kus ühel müüjal võib olla palju tooteid müügil. Seega on tootemudelil a võõrvõti müüjalt ja an on_delete atribuut on määratud mudelid. KASKAAD, mis tähendab, et kui kustutate müüja, kustutate automaatselt kõik tooted, millel see on esmane võti nagu võõrvõti.

Seotud: Õppige Pythonit ja Djangot juba täna nende suurepäraste kursuste abil Samuti võite märgata, et kõigil ülaltoodud koodi mudelitel pole primaarvõtit. Seda seetõttu, et Django genereerib automaatselt a esmane võti kui te seda otseselt ei loo.

Enne mis tahes loodud mudeli kasutamist peate Djangole ütlema, kust see leida. Selleks peate navigeerima aadressile settings.py faili ja sisestage mooduli nimi, mis sisaldab mudelid.py faili INSTALLED_APP osa.

Selle artikli näidisprojektis on mudelid.py fail on müüjate moodulis. Seetõttu uuendatakse INSTALLED_APP jaotis loetakse järgmiselt:

INSTALLED_APPS = [
'django.contrib.admin',
"django.contrib.auth",
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"müüjad",
]

Ülaltoodud koodiga on müüjate rakenduses olevad mudelid nüüd Django veebisaidil nähtavad ja nüüd saate liikuda üleviimise juurde.

Migratsioonide läbiviimine on oluline, kuna see protsess on viis mudelites tehtud muudatuste levitamiseks vastavasse andmebaasi skeemi. Seega peate iga kord, kui oma mudelit muudate, läbi viima migratsiooniprotsessi, mis hõlmab kahte etappi.

Esimene samm on teha migratsioonid, mis on käsk, mis loob migratsioonid rakenduses tuvastatud muudatuste põhjal mudelid.py faili. Migratsiooniprotsessi alustamiseks peate avama oma terminali, liikuma kataloogi, kus on teie Django projekt, ja käivitama serveri järgmise käsuga:

python manage.py runserver

Kui server töötab ühes terminalis, avage uus terminal ja sisestage järgmine käsk:

python manage.py makemigrations

Pärast täitmist annab terminal järgmise väljundi:

„Müüjate” migratsioonid:
sellers\migrations\0001_initial.py
- Loo mudeli müüja
- Loo mudeltoode

Ülaltoodud väljundis on selgelt öeldud, et teil on nüüd kahe mudeli – müüja ja toote – migratsioonid. Kui nüüd navigeerite oma müüjate moodulis migratsioonikausta, näete, et sellel on nüüd uus fail nimega 0001_initial.py. Sellest failist leiate äsja loodud migratsioonid.

Fail 0001_initial.py

# Loodud Django 3.2.9 poolt 2022-02-26 16:06

django.db-st impordi migratsioonid, mudelid
importida django.db.models.deletion

klass Ränne (ränded. Migratsioon):

esialgne = Tõene

sõltuvused = [
]

operatsioonid = [
migratsioonid. CreateModel(
name='müüja',
väljad=[
('id', mudelid. BigAutoField (auto_created=True, Prime_key=True, serialize=False, verbose_name='ID')),
('eesnimi', mudelid. CharField (max_length=30)),
('perekonnanimi', mudelid. CharField (max_length=30)),
('contact_number', mudelid. CharField (max_length=30)),
],
),
migratsioonid. CreateModel(
name='toode',
väljad=[
('id', mudelid. BigAutoField (auto_created=True, Prime_key=True, serialize=False, verbose_name='ID')),
('üksuse_nimi', mudelid. CharField (max_length=100)),
('item_qantity', mudelid. IntegerField()),
('item_price', mudelid. DecimalField (decimal_places=2, max_digits=9)),
('üksuse_kirjeldus', mudelid. Tekstiväli()),
('müüja', mudelid. ForeignKey (on_delete=django.db.models.deletion. CASCADE, to='müüjad.müüja')),
],
),
]

Iga kord, kui teete uue migratsiooni, genereerib migreerimiskaust sellest failist uue versiooni.

Migratsiooniprotsessi teine ​​etapp on mudelite lõplik üleviimine. See tähendab, et sünkroonite andmebaasi oleku mudelid.py faili, kasutades migratsioone, mille just lõite failis 0001_initial.py faili. Saate selle protsessi lõpule viia (kui server veel töötab) järgmise käsuga:

python manage.py migreerida

Mis on Django mall?

Mallid on viis Django projekti jaoks HTML-i dünaamiliseks genereerimiseks. Igal Django mallil on .html laiendus ning staatilise ja dünaamilise sisu kombinatsioon. Django mallidel on ainulaadne süntaks, mis sisaldab uusi viise muutujate ja siltide loomiseks HTML-dokumendis.

Django malli loomine

Selle artikli e-kaubanduse näidisveebisaidil mallide tutvustamiseks peate looma müüjate moodulis uue kataloogi. See uus kataloog nimega "mallid" on kõigi müüjate rakenduse HTML-dokumentide kodu – alustades avalehest.

Fail sellers_home.html





Müüjad | E-kaubandus


Tere tulemast müüjad!




Pärast mallide loomist peate need Djangole nähtavaks tegema, lisades oma mallide kataloogi MALLID osa settings.py faili. Uuendatud MALLID jaotis näeb välja järgmine:

MALLID = [
{
'TAGAJANDUS': 'django.template.backends.django. DjangoTemplates,
'DIRS': [
# uus kood, mis osutab mallide asukohale
BASE_DIR / 'müüjad' / 'mallid'
],
'APP_DIRS': tõsi,
'VALIKUD': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

Nüüd, kui Django teab, kust veebisaidi malle leida, saate vaadata ja renderdada need kasutajaliidesesse.

Mis on Django vaade?

Vaade on Django MVT-arhitektuuri teine ​​kiht, mall on kasutu, välja arvatud juhul, kui vaade seda kasutajaliidesele renderdab. Vaade vastutab veebipäringute vastuvõtmise ja sobivate vastuste (sh mallide) tagastamise eest. Oma kõige elementaarsemal kujul on vaade Pythoni funktsioon, mis on talletatud view.py oma Django projekti faili.

Django View loomine

The view.py fail asub Django näidisprojekti müüjate moodulis. Kui müüja külastab teie veebisaiti, soovite, et ta läheks müüja avalehele. See avaleht, mille loote HTML-i malli abil, sarnaselt ülaltoodud mallijaotises loodud leheküljega.

View.py fail

impordi renderdamisest django.shortcuts

def-indeks (taotlus):
tagasta renderdus (taotlus, 'sellers_home.html')

Ülaltoodud vaade võtab päringu ja tagastab müüjate HTML-malli. Seega iga kord, kui kasutaja külastab (või taotleb) http://127.0.0.1:8000/sellers/ nad näevad müüjate kodulehte. See on pärast a. loomist urls.py fail müüjate moodulis.

Sellers urls.py fail

django.urlsi imporditeelt
alates. vaateid importida

urlmustrid = [
path('', views.index, name='index'),
]

Ja lisage tee müüjate moodulisse urls.py faili urls.py fail asub Django põhikataloogis.

Veebisaidi fail urls.py

saidilt django.contrib import admin
saidilt django.urls impordi hulka, tee

urlmustrid = [
path('sellers/', include('sellers.urls')),
path('admin/', admin.site.urls),
]

Nüüd, kui vaade on seadistatud, saate veenduda, et Django server töötab, ja navigeerida sinna http://127.0.0.1:8000/sellers/ oma brauseris, et näha müüjate kodulehte.

Müüjate koduleht

Django MVT arhitektuur vs. MVC arhitektuur

Django MVT arhitektuur erineb üsna populaarsest MVC arhitektuurist.

MVT arhitektuuri mallijaotis töötab samamoodi nagu vaade MVC arhitektuuris, samas kui MVT arhitektuuri vaade kuvab omadusi, mis on sarnased MVC kontrolleriga arhitektuur. Mõlema arhitektuuri mudelid töötavad aga identselt.

Sissejuhatus MVC arhitektuuri: selgitatud näited

Kohesete tulemuste saamiseks rakendage oma programmidele Model-View-Controlleri disainipõhimõtteid. Siin on, kuidas alustada.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • Python
Autori kohta
Kadeisha Kean (Avaldatud 46 artiklit)

Kadeisha Kean on täisstacki tarkvaraarendaja ja tehniline/tehnoloogiakirjutaja. Tal on selge võime lihtsustada mõningaid kõige keerukamaid tehnoloogilisi kontseptsioone; Tootma materjali, mis on kergesti mõistetav igale tehnoloogiaalgajale. Ta on kirglik kirjutamise, huvitava tarkvara arendamise ja maailmas reisimise vastu (dokumentaalfilmide kaudu).

Veel Kadeiha Keanilt

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin