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 lietotneB. 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ājuC. 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ēšanano 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 modulino 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 modulisno 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
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 modulino 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 modulino 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ē.