Django

NULL noklusējuma vērtības izmantošana Django modelī

NULL noklusējuma vērtības izmantošana Django modelī
Modelis ir viena no nozīmīgākajām Django lietojumprogrammas daļām. Modelis nosaka datu bāzes struktūru. Datu bāzes tabulas datu tips un datu ievietošanas veids, pamatojoties uz dažādiem atribūtiem, ir aprakstīts modelī. Datu validāciju var kontrolēt, izmantojot arī modeli. Katrā datu bāzes tabulā ir noteikts skaits lauku vai kolonnu. Modelis nosaka katra tabulas lauka tipu. Noklusējuma atribūts tiek izmantots modelī, lai iestatītu noklusējuma vērtību konkrētam apgabalam, ja šī lauka lietotājs neievieto datus. Lauka noklusējuma vērtība var būt tukšs vai kādu konkrētu vērtību. The nulle un tukšs vērtības nav vienādas. nulle tiek izmantots, lai noteiktu, vai tukša vērtība ir atļauta vai nav atļauta konkrētam laukam. Ja nulle ir iestatīts uz Nepatiesa, tad tukšā virkne nav atļauta laukā vesels skaitlis, bet tukšo virkni var piešķirt virknes tipa laukā. Ja nulle ir iestatīts uz Patiesi, tad NULL vērtība tiks ievadīta laukā vesels skaitlis tukšas virknes vietā. blansk tiek izmantots galvenokārt formas apstiprināšanai un nepārbauda lauka datu tipu. Lietošanas veids noklusējums un nulle Django modeļa atribūti ir parādīti šajā apmācībā.

Priekšnosacījumi:

Pirms praktizēt šīs apmācības skriptu, jums ir jāveic šādi uzdevumi.

A. Instalējiet Django versiju 3+ Ubuntu 20+ (vēlams)
B. Izveidojiet Django projektu
C. Palaidiet Django serveri, lai pārbaudītu, vai serveris darbojas pareizi.

Django lietotnes iestatīšana:

A. Palaidiet šo komandu, lai izveidotu Django lietotni ar nosaukumu datu bāzes lietotne.

$ python3 pārvaldīt.py startapp datu bāzes lietotne

B. Palaidiet šo komandu, lai izveidotu lietotāju piekļuvei Django datu bāzei. Ja esat pabeidzis lietotāju iepriekš, jums nav nepieciešams palaist komandu.

$ python3 pārvaldīt.py rada liellietotāju

C. Pievienojiet lietotnes nosaukumu mapē INSTALLED_APP daļa no iestatījumiem.py fails.

INSTALLED_APPS = [

'validationapp'
]

D. Izveidojiet mapi ar nosaukumu veidnes iekšpusē datu bāzes lietotne mapi un iestatiet veidnes lietotnes atrašanās vieta Veidnes daļa no iestatījumi.py failu.

PARAUGI = [

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

Dizaina modelis ar noklusējuma un nulles atribūtiem:

Mainīt modeļiem.py failu ar šādu skriptu, lai izveidotu tabulu ar nosaukumu produktiem kurā būs četri lauki bez lauka id. Šie nosaukumi, cena, ražošanas_datums un derīguma termiņš_datums. Vērtība nulle atribūts ir iestatīts uz True visiem laukiem. Vērtība tukša Arī visiem laukiem atribūts ir iestatīts uz True. Tas nozīmē, ka lietotājs var aizpildīt laukus tukšus, pirms iesniedz veidlapu, kurā tiks izmantots šis modelis. The noklusējums atribūta vērtība ir iestatīta cenai, ražošanas_datumam un derīguma termiņa_datumam.

modeļiem.py

# Modeļu importēšana
no django.db importēšanas modeļi
# Izveidojiet klasi, lai definētu skolotāju tabulas struktūru
klases produkts (modeļi.Modelis):
nosaukums = modeļi.CharField (max_length = 50, null = True, tukšs = True)
cena = modeļi.IntegerField (null = patiess, noklusējums = ", tukšs = patiess)
ražošanas_datums = modeļi.DateField (null = True, noklusējums = '0000-00-00', tukšs = True)
expire_date = modeļi.DateField (null = True, noklusējums = '0000-00-00', tukšs = True)

Palaidiet šīs migrācijas komandas, lai izveidotu nepieciešamos migrācijas failus un SQLite datu bāzes datu bāzes tabulu.

$ python3 pārvaldīt.py makemigrations databaseapp
$ python3 pārvaldīt.py migrēt

Datu ievietošana, izmantojot Django Administration Dashboard:

Mainīt vietnes saturu administrators.py failu ar šādu skriptu, lai reģistrētu modeli datu bāzē.

admin.py
Mainīt URL.py failu ar šādu skriptu, lai noteiktu ceļu uz Django administratīvā paneļa atvēršanu.

URL.py

# Importēt administratora moduli
no django.ieguldījuma importēšanas administrators
# Importēšanas ceļa modulis
no django.URL importēšanas ceļš
# Definējiet ceļu klientam un administratoram
urlpatterns = [
ceļš ('admin /', admin.vietne.URL)
]

Tagad palaidiet Django serveri un dodieties uz Django administratīvo informācijas paneli, izmantojot šādu URL.

http: // localhist: 8000 / admin

atveriet produkta ievades formu, noklikšķinot Pievienojiet produktu. Ja lietotājs iesniedz veidlapu, neievietojot datus, pārlūkprogrammā tiks parādīta šāda izeja. Divos datuma laukos ir redzamas kļūdas, jo datuma lauka noklusējuma vērtība nav derīgā formātā.

Pēc derīgu datuma datu pievienošanas parādīsies šāda izeja. Lūk, cena lauks ir tukšs, lai izmantotu noklusējuma atribūtu.

Datu ievietošana, izmantojot veidni:

Datu ievietošanas veids produktiem Šajā sadaļā ir parādīta tabula, izmantojot HTML formu. Veidlapas elementi tiks ģenerēti, pamatojoties uz iepriekš izveidoto modeli.

formas.py

# Veidlapu importēšanas modulis
no django importa veidlapām
# Importēt klienta modeli
no dbapp.modeļi importē produktu
# Definējiet klienta veidlapas klasi
klase ProductForm (formas.ModelForm):
klase Meta:
modelis = produkts
lauki = '__all__'

Izveidojiet HTML failu ar nosaukumu produktu.html iekšpusē veidnes lietotnes mape ar šādu skriptu. Veidlapas dati tiks iesniegti, kad lietotājs noklikšķinās uz Saglabāt pogu.

produktu.html

Klienta pieteikuma veidlapa



% csrf_token%
veidlapa.as_p

Mainīt skati.py failu ar šādu skriptu, lai ievietotu datus produktiem tabulas pēc formas apstiprināšanas. AddProduct () Funkcija ir definēta skriptā, lai pārbaudītu, vai veidlapa ir iesniegta vai nē, un, ja veidlapa ir iesniegta, tā pārbaudīs, vai veidlapas dati ir derīgi vai nederīgi. Ja ir derīgs() funkcija atgriežas taisnība, tad dati tiks ievietoti produktiem tabulā, un pārlūkprogrammā tiks parādīts veiksmes ziņojums.

skati.py

# Importējiet HttpResponse moduli
no django.http.atbildes importēšana HttpResponse
# Importēt renderēšanas moduli
no django.saīsnes importēt renderēšanu
# Importēt ProductForm
no dbapp.veidlapas importē ProductForm
# Definējiet funkciju, lai pievienotu produkta ierakstu
def AddProduct (pieprasījums):
pēc pieprasījuma.metode == "POST":
forma = ProductForm (pieprasījums.POST)
# Ja veidlapas dati ir vai nav derīgi
ja forma.ir derīgs():
mēģiniet:
# Saglabājiet veidlapas datus datu bāzē
formā.saglabāt ()
# Definējiet ziņojumu lietotājam
dati = ['

Pievienots produkts.

']
# Atgrieziet atbildi
atgriezties HttpResponse (dati)
izņemot:
iziet
cits:
# Definējiet formas objektu
forma = ProductForm ()
# Parādīt produkta ievades veidlapu
atgriezt renderēšanu (pieprasījums, 'produkts.html ', ' forma ': forma)

Mainīt URL.py failu ar šo skriptu, lai noteiktu skata funkcijas izsaukšanas ceļu.

URL.py

# Importēt administratora moduli
no django.ieguldījuma importēšanas administrators
# Importēšanas ceļa modulis
no django.URL importēšanas ceļš
# Importēšanas skats
no dbapp importēšanas skatiem
# Definējiet ceļu klientam un administratoram
urlpatterns = [
ceļš (", viedokļi.AddProduct),
ceļš ('admin /', admin.vietne.URL)
]

Tagad palaidiet Django serveri un pārlūkprogrammā atveriet pamata URL.

http: // vietējais: 8000 /

Parādīsies šāda forma.

Sekojošais ValueError parādīsies, ja lietotājs iesniegs veidlapu, veidlapā nepievienojot nekādus datus. Lūk, cena lauks ir vesels skaitlis, kas nevar būt tukša virkne.

Ja lietotājs ievada derīgus datus, piemēram, zemāk esošo veidlapu, un nospiež taustiņu Saglabāt pogu, datu bāzē tiks ievietots jauns produkta ieraksts.

Šis atvērtais attēls tiks parādīts, ja Django informācijas panelī atvērsiet tikko ievietoto ierakstu.

Secinājums:

Modelis ir izstrādāts, šajā apmācībā izmantojot nulles un noklusējuma atribūtus. Pēc tam šeit parādīti veidi, kā ievietot datus šajos laukos aizmugurē un priekšējā daļā, lai palīdzētu lasītājam uzzināt noklusējuma un nulles atribūtu izmantošanu Django datu bāzē.

Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...
10 labākās spēles, kuras spēlēt Ubuntu
Windows platforma ir bijusi viena no dominējošajām spēļu platformām, jo ​​mūsdienās tiek attīstīts milzīgs spēļu skaits, lai atbalstītu Windows. Vai k...
5 labākās arkādes spēles Linux
Mūsdienās datori ir nopietnas mašīnas, kuras izmanto spēlēšanai. Ja jūs nevarat iegūt jauno augsto rezultātu, jūs zināt, ko es domāju. Šajā ierakstā j...