Django-verkkokehyksessä on mallinäkymämalli (MVT) -arkkitehtuuri, mikä tekee siitä ainoan kehyksen, jota tarvitset täydellisen verkkosivuston tai verkkosovelluksen luomiseen. Tämän Python-kehyksen avulla voit luoda malleja, jotka luovat tietokantoja ja renderöivät dynaamisia HTML-malleja käyttöliittymään näkymien avulla.
Djangon voima ei ole salaisuus; se on nopea, luotettava, skaalautuva ja turvallinen. Tämän ohjelmiston luotettavuus ja skaalautuvuus riippuvat sen MVT-arkkitehtuurista. Ja tässä artikkelissa opit tarkalleen, kuinka Djangon MVT-arkkitehtuuri toimii.
Mikä on Djangon malli?
Djangon MVT-arkkitehtuurin malli määrittelee niiden tietojen rakenteen ja käyttäytymisen, jotka haluat tallentaa verkkosivustosi kautta. Jokainen luomasi Django-malli luo vastaavan tietokantataulukon, jossa jokaisesta mallin attribuutista tulee kenttä taulukossa.
Jatkamme asennuksesta meidän johdantoartikkeli Djangosta, voit luoda mallin myyjille. Myyjällä voi olla myyjämalli, jossa on henkilökohtaisia tietoja, kuten nimi ja yhteystiedot, sekä siihen liittyvä malli kunkin myyjän myymille tuotteille.
Olemassa oleva Django-projektitiedoston mallitiedostorakenne
sivuni/
sivuni/
_pycache_
_init_.py
asgi.py
settings.py
urls.py
wsgi.py
myyjät/
muuttoliike
_init_.py
admin.py
apps.py
mallit.py
test.py
views.py
db.sqlite3
manager.py
Django-mallien luominen
Jos katsot yllä olevan tiedostorakenteen myyjien sovellusosion alta, näet tiedoston nimeltä mallit.py. Täällä voit luoda kaikki Django-mallisi verkkosivustosi myyjien osioon. Jokainen luomasi malli on alaluokka Djangon mallisovellusliittymä, minkä vuoksi jokainen Django on luotu mallit.py tiedostossa on oletusmallien tuonti.
Model.py-tiedosto
django.db: n tuontimalleista
# Luo mallisi täällä.
luokan Myyjä (mallit. Malli):
etunimi = mallit. CharField (max_length=30)
sukunimi = mallit. CharField (max_length=30)
contact_number = mallit. CharField (max_length=30)
luokan tuote (mallit. Malli):
myyjä = mallit. ForeignKey (Myyjä, on_delete=models. RYÖPYTÄ)
item_name = mallit. CharField (max_length=100)
item_qantity = mallit. Kokonaislukukenttä()
item_price = mallit. Desimaalikenttä (max_digits=9, decimal_places=2)
item_description = mallit. Tekstikenttä()
Yllä oleva koodi on kopio päivitetystä sisällöstä malli.py tiedosto. Tiedosto luo nyt kaksi mallia: Myyjä ja Tuote. Näillä malleilla on yksi-moneen-suhde, jossa yhdellä myyjällä voi olla useita tuotteita myynnissä. Tuotemallissa on siis a vieras avain myyjältä ja an on_delete attribuutti asetettu mallit. RYÖPYTÄ, mikä tarkoittaa, että kun poistat myyjän, poistat automaattisesti kaikki tuotteet, joissa se on pääavain kuten a vieras avain.
Aiheeseen liittyvä: Opi Python ja Django tänään näillä upeilla kursseilla Saatat myös huomata, että kaikilla yllä olevan koodin malleilla ei ole ensisijaista avainta. Tämä johtuu siitä, että Django luo automaattisesti a pääavain jos et nimenomaisesti luo sitä.
Ennen kuin voit käyttää luomaasi mallia, sinun on kerrottava Djangolle, mistä se löytää. Voit tehdä tämän siirtymällä kohtaan settings.py tiedosto ja lisää sen sisältävän moduulin nimi mallit.py tiedostoon INSTALLED_APP -osio.
Tämän artikkelin esimerkkiprojektissa mallit.py tiedosto on myyjien moduulissa. Siksi päivitetty INSTALLED_APP osio kuuluu seuraavasti:
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
'django.contrib.contenttypes',
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myyjät",
]
Yllä olevan koodin avulla myyjien sovelluksen mallit näkyvät nyt Django-verkkosivustolla, ja nyt voit siirtyä siirtoihin.
Siirtojen suorittaminen on tärkeää, koska tämä prosessi on tapa levittää malleissasi tekemäsi muutokset vastaavaan tietokantaskeemaan. Joten aina, kun teet muutoksia malliisi, sinun on suoritettava siirtoprosessi, joka sisältää kaksi vaihetta.
Vaihe yksi on tehdä siirrot, joka on komento, joka luo siirrot tiedostossa havaittujen muutosten perusteella mallit.py tiedosto. Siirtoprosessin aloittamiseksi sinun on avattava päätelaite, navigoitava hakemistoon, jossa on Django-projektisi, ja käynnistää palvelin seuraavalla komennolla:
python manage.py runserver
Kun palvelin on käynnissä yhdessä päätteessä, avaa uusi pääte ja anna seuraava komento:
python manage.py makemigrations
Suorituksen jälkeen pääte tuottaa seuraavan lähdön:
Siirrot "myyjille":
sellers\migrations\0001_initial.py
- Luo mallimyyjä
- Luo mallituote
Yllä oleva tulos osoittaa selvästi, että sinulla on nyt siirrot kahdelle mallille – myyjälle ja tuotteelle. Jos nyt siirryt myyjämoduulin siirtokansioon, näet, että siinä on nyt uusi tiedosto nimeltä 0001_initial.py. Tästä tiedostosta löydät juuri luomasi siirrot.
0001_initial.py-tiedosto
# Luonut Django 3.2.9 2022-02-26 16:06django.db: stä tuontisiirrot, mallit
tuo django.db.models.deletion
luokka Muuttoliikkeet (muuttoliikkeet. Siirto):
alku = tosi
riippuvuudet = [
]
operaatiot = [
muuttoliikkeet. CreateModel(
name='Myyjä',
kentät=[
('id', mallit. BigAutoField (auto_created=True, Primera_key=True, serialize=False, verbose_name='ID')),
('first_name', mallit. CharField (max_length=30)),
('sukunimi', mallit. CharField (max_length=30)),
('contact_number', mallit. CharField (max_length=30)),
],
),
muuttoliikkeet. CreateModel(
name='Tuote',
kentät=[
('id', mallit. BigAutoField (auto_created=True, Primera_key=True, serialize=False, verbose_name='ID')),
('tuotenimi', mallit. CharField (max_length=100)),
('item_qantity', mallit. Kokonaislukukenttä()),
('tuotehinta', mallit. DecimalField (decimal_places=2, max_digits=9)),
('tuotekuvaus', mallit. Tekstikenttä()),
('myyjä', mallit. ForeignKey (on_delete=django.db.models.deletion. CASCADE, to='sellers.seller')),
],
),
]
Aina kun teet uuden siirron, siirtokansio luo tästä tiedostosta uuden version.
Siirtoprosessin toinen vaihe on mallien lopullinen siirto. Tämä tarkoittaa, että synkronoit tietokannan tilan kanssa mallit.py tiedostoa käyttämällä juuri luomiasi siirtoja 0001_initial.py tiedosto. Voit suorittaa tämän prosessin loppuun (palvelimen ollessa vielä käynnissä) seuraavalla komennolla:
python manager.py siirtää
Mikä on Djangon malli?
Mallit ovat tapa luoda dynaamisesti HTML-koodia Django-projektillesi. Jokaisessa Django-mallissa on .html laajennus ja staattisen ja dynaamisen sisällön yhdistelmä. Django-malleilla on ainutlaatuinen syntaksi, joka sisältää uusia tapoja luoda muuttujia ja tunnisteita HTML-dokumenttiin.
Django-mallin luominen
Jotta voit lisätä malleja tämän artikkelin verkkokauppamallisivustoon, sinun on luotava uusi hakemisto myyjien moduuliin. Tämä uusi "mallit"-niminen hakemisto on kaikkien myyjien sovelluksen HTML-dokumenttien koti - etusivusta alkaen.
Sellers_home.html-tiedosto
Myyjät | Sähköinen kaupankäynti
Tervetuloa Myyjät!
Kun olet luonut mallit, sinun on tehtävä ne Djangon nähtäviksi lisäämällä mallien hakemisto MALLIT osio settings.py tiedosto. Päivitetty MALLIT osio näyttää tältä:
MALLIT = [
{
'TAUSTAA': 'django.template.backends.django. DjangoTemplates,
'DIRS': [
# uusi koodi, joka osoittaa mallien sijaintiin
BASE_DIR / 'myyjät' / 'mallit'
],
'APP_DIRS': Totta,
'ASETUKSET': {
'context_processors': [
"django.template.context_processors.debug",
'django.template.context_processors.request',
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
Nyt kun Django tietää, mistä löytää sivuston mallit, voit jatkaa ja renderöidä ne käyttöliittymään näkymän avulla.
Mikä on Djangon näkemys?
Näkymä on Djangon MVT-arkkitehtuurin toinen kerros, malli on hyödytön, ellei näkymä hahmonna sitä käyttöliittymään. Näkymä vastaa verkkopyyntöjen hyväksymisestä ja asianmukaisten vastausten (mukaan lukien mallien) palauttamisesta. Perusmuodossaan näkymä on Python-funktio, joka on tallennettu hakemistoon view.py tiedosto Django-projektistasi.
Luodaan Django View
The view.py tiedosto on Django-malliprojektin myyjien moduulissa. Kun myyjä vierailee verkkosivustollasi, haluat hänen menevän myyjän kotisivulle. Tämä kotisivu, jonka luot käyttämällä HTML-mallia, aivan kuten yllä olevassa malliosassa luotu.
View.py-tiedosto
django.shortcuts tuonti renderöinnista
def-indeksi (pyyntö):
palauta renderöinti (pyyntö, 'sellers_home.html')
Yllä oleva näkymä ottaa pyynnön ja palauttaa myyjien HTML-mallin. Joten aina, kun käyttäjä vierailee (tai pyytää) http://127.0.0.1:8000/sellers/ he näkevät myyjien kotisivun. Tämä tapahtuu sen jälkeen, kun olet luonut a urls.py tiedosto myyjien moduulissa.
Sellers urls.py -tiedosto
django.urls tuontipolusta
alkaen. tuoda näkymät
urlpatterns = [
polku('', views.index, name='index'),
]
Ja sisällytä polku myyjien moduuliin urls.py tiedosto tiedostoon urls.py tiedosto, joka sijaitsee Django-päähakemistossa.
Verkkosivuston urls.py-tiedosto
osoitteesta django.contrib import admin
osoitteesta django.urls tuonti include, polku
urlpatterns = [
path('sellers/', include('sellers.urls')),
polku('admin/', admin.site.urls),
]
Nyt kun näkymä on määritetty, voit varmistaa, että Django-palvelin on edelleen käynnissä, ja navigoida kohteeseen http://127.0.0.1:8000/sellers/ selaimessasi nähdäksesi myyjien kotisivun.
Myyjien kotisivu
Djangon MVT-arkkitehtuuri vs. MVC-arkkitehtuuri
Djangon MVT-arkkitehtuuri eroaa melkoisesti suositusta MVC-arkkitehtuurista.
MVT-arkkitehtuurin malliosio toimii pitkälti samalla tavalla kuin MVC-arkkitehtuurin näkymä, kun taas MVT-arkkitehtuurin näkymä näyttää ominaisuuksia, jotka ovat samanlaisia kuin MVC: n ohjain arkkitehtuuri. Molempien arkkitehtuurien mallit toimivat kuitenkin samalla tavalla.
Käytä Model-View-Controller-suunnitteluperiaatteita omiin ohjelmiisi saadaksesi välittömiä tuloksia. Näin pääset alkuun.
Lue Seuraava
- Ohjelmointi
- Ohjelmointi
- Python
Kadeisha Kean on Full-Stack-ohjelmistokehittäjä ja tekninen/teknologiakirjoittaja. Hänellä on selkeä kyky yksinkertaistaa joitain monimutkaisimmista teknologisista käsitteistä; tuottaa materiaalia, jonka jokainen teknologia-aloittelija voi helposti ymmärtää. Hän on intohimoinen kirjoittamiseen, mielenkiintoisten ohjelmistojen kehittämiseen ja maailmalla matkustamiseen (dokumenttien kautta).
tilaa uutiskirjeemme
Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja eksklusiivisia tarjouksia!
Klikkaa tästä tilataksesi