Django

NULL-i vaikeväärtuse kasutamine Django mudelis

NULL-i vaikeväärtuse kasutamine Django mudelis
Mudel on andmebaasipõhise Django rakenduse üks olulisi osi. Mudel määratleb andmebaasi struktuuri. Andmebaasi tabeli andmetüüp ja erinevate atribuutide põhjal andmete sisestamise viis on kirjeldatud mudelis. Andmete kinnitamist saab kontrollida ka mudeli abil. Iga andmebaasi tabel sisaldab kindlat arvu välju või veerge. Mudel määratleb tabeli iga välja tüübi. Vaikimisi atribuuti kasutatakse mudelis konkreetse piirkonna vaikeväärtuse määramiseks, kui selle välja kasutaja sisestab andmeid. Välja vaikeväärtus võib olla tühi või mõni konkreetne väärtus. The null ja tühi väärtused pole samad. null kasutatakse selle määratlemiseks, et tühi väärtus on konkreetse välja jaoks lubatud või mitte. Kui null on seatud väärtusele Vale, siis tühja stringi pole lubatud täisarvuga sisestatud väljale, kuid tühja stringi saab määrata stringi sisestatud väljale. Kui null on seatud väärtusele Tõsi, siis NULL väärtus antakse täisarvuga sisestatud väljale tühja stringi asemel. blank kasutatakse vormi valideerimiseks peamiselt ja see ei kontrolli välja andmetüüpi. Kasutamisviis vaikimisi ja null Django mudeli atribuudid on selles õpetuses näidatud.

Eeldused:

Enne selle õpetuse skripti harjutamist peate täitma järgmised ülesanded.

A. Installige Django versioon 3+ Ubuntu 20+ (eelistatult)
B. Looge Django projekt
C. Käivitage Django server, et kontrollida, kas server töötab õigesti või mitte.

Django rakenduse seadistamine:

A. Django nimelise rakenduse loomiseks käivitage järgmine käsk andmebaasileht.

$ python3 hallata.py startapp andmebaasi rakendus

B. Käivitage järgmine käsk, et luua kasutaja Django andmebaasile juurdepääsuks. Kui olete kasutaja varem lõpetanud, ei pea te käsku käivitama.

$ python3 hallata.py loob ülikasutaja

C. Lisage rakenduse nimi rakendusse INSTALLED_APP osa seadetest.py-fail.

INSTALLED_APPS = [

'validationapp'
]

D. Looge kaust nimega mallid sees andmebaasileht kaust ja määrake malli omad rakenduse asukoht MALLID osa seaded.py faili.

MALLID = [

… .
'DIRS': ['/ home / fahmida / django_pro / databaseaseapp / templates'],
… .
,
]

Kujundusmudel vaike- ja nullatribuutidega:

Muutke mudelid.py nimega tabeli loomiseks järgmise skriptiga fail tooted mis sisaldab nelja välja ilma id-välja. Need nimed, hind, tootmise_kuupäev ja aegumiskuupäev. Väärtus null atribuut on kõigi väljade jaoks seatud väärtusele Tõene. Väärtus toorik atribuudi väärtuseks on True ka kõigi väljade jaoks. See tähendab, et kasutaja saab enne seda mudelit kasutava vormi esitamist väljad tühjaks jätta. The vaikimisi atribuudi väärtus on määratud hinnale, tootmise_kuupäev ja aegumiskuupäev.

mudelid.py

# Mudelite importimise moodul
alates django.db impordimudelid
# Loo klass õpetajate tabeli struktuuri määratlemiseks
klassi toode (mudelid.Mudel):
nimi = mudelid.CharField (max_length = 50, null = True, tühi = True)
hind = mudelid.IntegerField (null = tõene, vaikimisi = ", tühi = tõene)
tootmise_kuupäev = mudelid.DateField (null = True, vaikimisi = '0000-00-00', tühi = True)
aegumiskuupäev = mudelid.DateField (null = True, vaikimisi = '0000-00-00', tühi = True)

Vajalike migreerimisfailide ja SQLite andmebaasi andmebaasi tabeli loomiseks käivitage järgmised migreerimiskäsud.

$ python3 hallata.py makemigreerimiste andmebaasirakendus
$ python3 hallata.py rännata

Andmete sisestamine Django Administration Dashboardi abil:

Muutke saidi sisu admin.py faili järgmise skriptiga mudeli registreerimiseks andmebaasis.

admin.py
Muutke URL-id.py fail järgmise skriptiga, et määrata Django halduspaneeli avamise tee.

URL-id.py

# Impordi administraatori moodul
alates django.kaastöö impordi admin
# Importimooduli import
alates django.URL-ide importimise tee
# Määrake kliendi ja administraatori tee
urlpatterns = [
tee ('admin /', admin.sait.URL-id)
]

Nüüd käivitage Django server ja minge järgmise URL-i abil Django halduspaneelile.

http: // localhist: 8000 / admin

avage toote sisestamise vorm, klõpsates nuppu Lisa toode. Kui kasutaja esitab vormi ilma andmeid sisestamata, kuvatakse brauseris järgmine väljund. Siin on kahel kuupäevaväljal vead, kuna kuupäevavälja vaikeväärtus pole kehtivas vormingus.

Järgmine väljund ilmub pärast kehtivate kuupäeva andmete lisamist. Siin, hind väli on vaikeatribuudi kasutamiseks tühi.

Andmete sisestamine malli abil:

Andmete sisestamise viis tooted Selles jaotises on näidatud HTML-vormingut kasutav tabel. Siin genereeritakse vormielemendid varem loodud mudeli põhjal.

vormid.py

# Vormimooduli import
django impordivormidelt
# Importige kliendi mudel
alates dbapp.mudelid impordivad toodet
# Määratlege kliendivormi klass
klass ProductForm (vormid.ModelForm):
klassi Meta:
mudel = toode
väljad = '__all__'

Looge nimega HTML-fail toote.HTML sees mallid rakenduse kaust järgmise skriptiga. Vormi andmed esitatakse siis, kui kasutaja klõpsab nuppu Salvesta nuppu.

toote.HTML

Kliendi sisestamise vorm



% csrf_token%
vorm.as_p

Muutke vaated.py faili järgmise skriptiga andmete sisestamiseks tooted tabel pärast vormi kinnitamist. AddProduct () Funktsioon on skriptis määratletud, et kontrollida, kas vorm on esitatud või mitte, ja kui vorm esitatakse, kontrollib see, et vormi andmed on õiged või valed. Kui on kehtiv() funktsioon tagastab tõsi, siis sisestatakse andmed tooted tabelit ja brauseris kuvatakse eduteade.

vaated.py

# Impordi HttpResponse moodul
alates django.http.vastuse importimine HttpResponse
# Impordi renderdamise moodul
alates django.otseteed impordi renderdamine
# Importige ProductForm
alates dbapp.vormid impordivad ProductFormi
# Määrake funktsioon toote sisestamise lisamiseks
def AddProduct (taotlus):
soovi korral.meetod == "POST":
vorm = ProductForm (taotlus.POSTITAMINE)
# Kui vormi andmed on õiged või mitte
kui vorm.on kehtiv():
proovige:
# Salvestage vormi andmed andmebaasi
vormis.salvesta ()
# Määrake kasutajale sõnum
andmed = ['

Toode on lisatud.

']
# Tagastage vastus
tagastage HttpResponse (andmed)
välja arvatud:
üle andma
muu:
# Määrake vormi objekt
vorm = ProductForm ()
# Kuva toote sisestamise vorm
return render (taotlus, 'toode.HTML ', ' vorm ': vorm)

Muutke URL-id.py järgmise skriptiga fail, et määrata vaate funktsiooni kutsumise tee.

URL-id.py

# Impordi administraatori moodul
alates django.kaastöö impordi admin
# Importimooduli import
alates django.URL-ide importimise tee
# Importivaade
dbapp-i impordivaadetest
# Määrake kliendi ja administraatori tee
urlpatterns = [
tee (", vaated.AddProduct),
tee ('admin /', admin.sait.URL-id)
]

Nüüd käivitage Django server ja avage brauseris põhi-URL.

http: // localhist: 8000 /

Ilmub järgmine vorm.

Järgnev ValueError ilmub, kui kasutaja esitab vormi ilma vormi andmeid lisamata. Siin, hind väli on täisarv, mis ei saa olla tühi string.

Kui kasutaja sisestab kehtivad andmed nagu allpool olev vorm ja vajutab nuppu Salvesta nuppu, lisatakse andmebaasi uus tootekirje.

Järgmine pilt ilmub, kui avate äsja sisestatud kirje Django juhtpaneelilt.

Järeldus:

Mudel on loodud selles õpetuses null- ja vaikeatribuutide abil. Järgmisena on siin näidatud viisid andmete sisestamiseks nendesse väljadesse nii back-endis kui ka esiotsa, et aidata lugejal teada saada Django andmebaasis vaikimisi ja null-atribuutide kasutus.

Parimad Linuxi mängupuldi kaardistamise rakendused
Kui teile meeldib mängida Linuxis mänge tavalise klaviatuuri ja hiire sisestussüsteemi asemel mängupuldiga, on teie jaoks mõned kasulikud rakendused. ...
Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...