Forudsætninger:
Før du træner scriptet til denne vejledning, skal du udføre følgende opgaver.
EN. Installer Django version 3+ på Ubuntu 20+ (helst)
B. Opret et Django-projekt
C. Kør Django-serveren for at kontrollere, at serveren fungerer korrekt eller ej.
Konfigurer en Django-app:
EN. Kør følgende kommando for at oprette en Django-app med navnet databaseapp.
$ python3 administrere.py startapp databaseappB. Kør følgende kommando for at oprette brugeren til adgang til Django-databasen. Hvis du har gennemført brugeren før, behøver du ikke køre kommandoen.
$ python3 administrere.py skaberbrugerC. Tilføj appnavnet i INSTALLERET_APP del af indstillingerne.py-fil.
INSTALLED_APPS = [..
'valideringapp'
]
D. Opret en mappe med navnet skabeloner inde i databaseapp mappe og indstil skabeloner placering af appen i MALLER en del af indstillinger.py fil.
MALLER = [.. .
'DIRS': ['/ home / fahmida / django_pro / databaseapp / templates'],
.. .
,
]
Designmodel med standard- og nullattributter:
Rediger modeller.py fil med følgende script for at oprette en tabel med navnet Produkter der vil indeholde fire felter uden id-feltet. Disse navne, pris, fremstillingsdato og udløbsdato. Værdien af nul attribut er indstillet til Sand for alle felter. Værdien af det blanke attribut er også sat til Sand for alle felter. Dette betyder, at brugeren kan holde felterne tomme, inden de indsender den formular, der bruger denne model. Det Standard attributværdien indstilles til prisen, fremstillingsdato og udløbsdato.
modeller.py
# Importmodulmodulfra django.db import modeller
# Opret klasse for at definere strukturen i tabellen Lærere
klasse Produkt (modeller.Model):
navn = modeller.CharField (max_length = 50, null = True, blank = True)
pris = modeller.IntegerField (null = True, default = ", blank = True)
manufacturing_date = modeller.DateField (null = True, standard = '0000-00-00', blank = True)
expire_date = modeller.DateField (null = True, standard = '0000-00-00', blank = True)
Kør følgende migreringskommandoer for at oprette de nødvendige migreringsfiler og SQLite-databasens databasetabel.
$ python3 administrere.py makemigrations databaseapp$ python3 administrere.py migrere
Dataindsættelse ved hjælp af Django Administration Dashboard:
Rediger indholdet af administratoren.py fil med følgende script for at registrere modellen i databasen.
admin.py
Rediger webadresser.py fil med følgende script for at definere stien til åbning af Django Administrative Dashboard.
webadresser.py
# Importér admin-modulfra django.import importadministrator
# Importer sti-modul
fra django.webadresser til import af sti
# Definer sti til kunde og admin
urlmønstre = [
sti ('admin /', admin.websted.webadresser)
]
Kør nu Django-serveren, og gå til Django Administrative Dashboard ved hjælp af følgende URL.
http: // localhist: 8000 / admin
åbn produktindtastningsskemaet ved at klikke på Tilføj produkt. Hvis brugeren sender formularen uden at indsætte data, vises følgende output i browseren. Her viser to datofelter fejl, fordi standardværdien for datofeltet ikke er i et gyldigt format.
Følgende output vises efter tilføjelse af gyldige datadata. Her, den pris feltet er tomt til brug af standardattributten.
Dataindsættelse ved hjælp af skabelonen:
Måden at indsætte data i Produkter tabel ved hjælp af HTML-formular er vist i dette afsnit. Her genereres formelementerne baseret på den model, der er oprettet tidligere.
formularer.py
# Importer formularmodulfra django importformularer
# Importer kundemodel
fra dbapp.modeller importerer produkt
# Definer klassen til kundeformularen
klasse ProductForm (formularer.ModelForm):
klasse Meta:
model = Produkt
felter = '__all__'
Opret HTML-filen med navnet produkt.html inde i skabeloner mappe i appen med følgende script. Formulardataene indsendes, når brugeren klikker på Gemme knap.
produkt.html
Kundeindtastningsformular
Rediger synspunkter.py fil med følgende script for at indsætte data i Produkter tabel efter validering af formularen. Tilføj produkt () funktion er defineret i scriptet for at kontrollere, at formularen er indsendt eller ej, og hvis formularen sendes, kontrollerer den, at formulardataene er gyldige eller ugyldige. Hvis er gyldig() funktion vender tilbage rigtigt, derefter indsættes dataene i Produkter tabellen, og en succesmeddelelse vises i browseren.
synspunkter.py
# Importer HttpResponse-modulfra django.http.svar import HttpResponse
# Import gengivelsesmodul
fra django.genveje import gengivelse
# Importer produktform
fra dbapp.formularer importerer ProductForm
# Definer funktion for at tilføje produktindtastning
def AddProduct (anmodning):
hvis anmodning.metode == "POST":
form = ProductForm (anmodning.STOLPE)
# Hvis formulardataene er gyldige eller ej
hvis form.er gyldig():
prøve:
# Gem formulardataene i databasen
form.Gemme()
# Definer meddelelsen til brugeren
data = ['
Produktet tilføjet.
']# Returner svaret
returner HttpResponse (data)
undtagen:
passere
andet:
# Definer formularobjektet
form = ProductForm ()
# Vis produktindtastningsskemaet
returner gengivelse (anmodning, 'produkt.html ', ' form ': form)
Rediger webadresser.py fil med følgende script for at definere stien til opkald til visningsfunktionen.
webadresser.py
# Importér admin-modulfra django.import importadministrator
# Importer sti-modul
fra django.webadresser til import af sti
# Importvisning
fra dbapp-importvisninger
# Definer sti til kunde og admin
urlmønstre = [
sti (", visninger.Tilføj produkt),
sti ('admin /', admin.websted.webadresser)
]
Kør nu Django-serveren, og åbn basis-URL'en i browseren.
http: // lokalhistorisk: 8000 /
Følgende formular vises.
Det følgende ValueError vises, hvis brugeren sender formularen uden at tilføje nogen data i formularen. Her, den pris felt er et heltal, der ikke kan være den tomme streng.
Hvis brugeren indtaster de gyldige data som nedenstående formular og trykker på Gemme knappen, indsættes en ny produktregistrering i databasen.
Følgende billede vises, hvis du åbner den nyindsatte post fra Django Dashboard.
Konklusion:
En model er designet ved hjælp af null- og standardattributter i denne vejledning. Derefter har måderne til indsættelse af data i disse felter i back-end og front-end vist her for at hjælpe læseren med at kende brugen af standard- og null-attributter i Django-databasen.