Pogoji:
Pred vadbo skripta te vaje morate opraviti naslednje naloge.
A. Namestite različico Django 3+ na Ubuntu 20+ (po možnosti)
B. Ustvarite projekt Django
C. Zaženite strežnik Django, da preverite, ali strežnik deluje pravilno ali ne.
Nastavite aplikacijo Django:
A. Zaženite naslednji ukaz, da ustvarite aplikacijo Django z imenom databaseapp.
$ python3 upravljanje.py startapp databaseappB. Zaženite naslednji ukaz, da ustvarite uporabnika za dostop do baze podatkov Django. Če ste uporabnika že izpolnili, ukaza ni treba zagnati.
$ python3 upravljanje.py ustvarja uporabnikaC. Dodajte ime aplikacije v INSTALLED_APP del nastavitev.datoteko.
INSTALLED_APPS = [..
'validationapp'
]
D. Ustvarite mapo z imenom predloge znotraj databaseapp mapo in nastavite predloge lokacijo aplikacije v PREDLOGE del nastavitve.py mapa.
PREDLOGE = [.. .
'DIRS': ['/ home / fahmida / django_pro / databaseapp / templates'],
.. .
,
]
Model zasnove s privzetimi in ničelnimi atributi:
Spremenite modelov.py datoteko z naslednjim skriptom za ustvarjanje tabele z imenom izdelkov ki bo vseboval štiri polja brez polja id. Te imena, cena, datum izdelave in datum poteka. Vrednost nič atribut je za vsa polja nastavljen na True. Vrednost prazno atribut je nastavljen na True tudi za vsa polja. To pomeni, da lahko uporabnik obdrži polja prazna, preden odda obrazec, ki bo uporabil ta model. The privzeto Vrednost atributa je nastavljena za ceno, datum_izdelave in datum izteka.
modelov.py
# Uvoz modelov modulaiz djanga.db modeli uvoza
# Ustvari razred za določitev strukture tabele učiteljev
razred Izdelek (modeli.Model):
ime = modeli.CharField (max_length = 50, null = True, blank = True)
cena = modeli.IntegerField (null = True, privzeto = ", blank = True)
datum_izdelave = modeli.DateField (null = True, privzeto = '0000-00-00', blank = True)
expire_date = modeli.DateField (null = True, privzeto = '0000-00-00', blank = True)
Zaženite naslednje ukaze za selitev, da ustvarite potrebne datoteke za selitev in tabelo zbirke podatkov baze podatkov SQLite.
$ python3 upravljanje.py makemigrations databaseapp$ python3 upravljanje.py selijo
Vstavljanje podatkov z nadzorno ploščo za upravljanje Django:
Spremenite vsebino skrbnik.py datoteko z naslednjim skriptom za registracijo modela v bazo podatkov.
skrbnik.py
Spremenite URL-ji.py datoteko z naslednjim skriptom, da določite pot do odpiranja nadzorne plošče Django.
URL-ji.py
# Uvozi skrbniški moduliz djanga.prispevaj uvoz admin
# Uvoz modula poti
iz djanga.pot za uvoz URL-jev
# Določite pot za stranko in skrbnika
urlpatterns = [
pot ('admin /', admin.spletnem mestu.urls)
]
Zdaj zaženite strežnik Django in pojdite na skrbniško nadzorno ploščo Django z naslednjim URL-jem.
http: // localhist: 8000 / admin
s klikom odprite obrazec za vnos izdelka Dodajte izdelek. Če uporabnik predloži obrazec brez vstavljanja podatkov, se v brskalniku prikaže naslednji izhod. Tu sta dve datumski polji prikazani napaki, ker privzeta vrednost datumskega polja ni v veljavni obliki.
Naslednji izhod se bo prikazal po dodajanju veljavnih podatkov o datumu. Tukaj cena polje je prazno za uporabo privzetega atributa.
Vstavljanje podatkov s predlogo:
Način vstavljanja podatkov v izdelkov tabela z uporabo obrazca HTML je prikazana v tem razdelku. Tu bodo elementi obrazca ustvarjeni na podlagi predhodno ustvarjenega modela.
obrazci.py
# Uvozi modul obrazceviz obrazcev za uvoz django
# Uvozi model stranke
iz dbapp.modeli uvozijo izdelek
# Določite razred za obrazec stranke
razred ProductForm (obrazci.ModelForm):
razred Meta:
model = izdelek
polja = '__all__'
Ustvarite datoteko HTML z imenom izdelka.html znotraj predloge mapo aplikacije z naslednjim skriptom. Podatki obrazca bodo poslani, ko bo uporabnik kliknil na Shrani gumb.
izdelka.html
Obrazec za prijavo strank
Spremenite pogledi.py datoteko z naslednjim skriptom za vstavljanje podatkov v izdelkov tabelo po potrditvi obrazca. AddProduct () je v skriptu definirana funkcija za preverjanje, ali je obrazec oddan ali ne, in če je obrazec oddan, bo preveril, ali so podatki obrazca veljavni ali neveljavni. Če is_valid () funkcija vrne prav, potem bodo podatki vstavljeni v izdelkov tabela, v brskalniku pa se prikaže sporočilo o uspehu.
pogledi.py
# Uvozi modul HttpResponseiz djanga.http.odziv uvoz HttpResponse
# Uvozi modul upodabljanja
iz djanga.bližnjice uvoz upodabljajo
# Uvozi obrazec izdelka
iz dbapp.obrazci uvoz ProductForm
# Določite funkcijo za dodajanje izdelka
def AddProduct (zahteva):
če zahteva.metoda == "OBJAVI":
form = ProductForm (zahteva.OBJAVI)
# Če so podatki obrazca veljavni ali ne
če obrazec.is_valid ():
poskusite:
# Podatke obrazca shranite v bazo podatkov
oblika.shrani ()
# Določite sporočilo za uporabnika
podatki = ['
Dodan izdelek.
']# Vrnite odgovor
vrni HttpResponse (podatki)
razen:
podajo
sicer:
# Določite objekt obrazca
form = ProductForm ()
# Pokažite obrazec za prijavo izdelka
vrnitev upodabljanja (zahteva, 'izdelek.html ', ' obrazec ': obrazec)
Spremenite URL-ji.py datoteko z naslednjim skriptom, da določite pot za klic funkcije pogleda.
URL-ji.py
# Uvozi skrbniški moduliz djanga.prispevaj uvoz admin
# Uvoz modula poti
iz djanga.pot za uvoz URL-jev
# Uvozi pogled
iz pogledov uvoza dbapp
# Določite pot za stranko in skrbnika
urlpatterns = [
pot (", pogledi.AddProduct),
pot ('admin /', admin.spletnem mestu.urls)
]
Zdaj zaženite strežnik Django in v brskalniku odprite osnovni URL.
http: // localhist: 8000 /
Pojavil se bo naslednji obrazec.
Naslednji ValueError se prikaže, če uporabnik predloži obrazec brez dodajanja podatkov v obrazec. Tukaj cena polje je celo število, ki ne sme biti prazen niz.
Če uporabnik vnese veljavne podatke, kot je spodnji obrazec, in pritisne Shrani gumb, bo nov zapis izdelka vstavljen v bazo podatkov.
Naslednja slika se prikaže, če na novo vstavljeni zapis odprete z nadzorne plošče Django.
Zaključek:
Model je bil zasnovan z uporabo null in privzetih atributov v tej vadnici. Nato so tukaj prikazani načini vstavljanja podatkov v ta polja v zaledju in prednjem delu, da bralcu pomagajo poznati uporabo privzetih in ničelnih atributov v zbirki podatkov Django.