Django

Brug af standardværdien af ​​NULL i Django Model

Brug af standardværdien af ​​NULL i Django Model
Model er en af ​​de væsentligste dele af den databasebaserede Django-applikation. Modellen definerer databasens struktur. Datatypen i databasetabellen og måden at indsætte data baseret på forskellige attributter er beskrevet i modellen. Datavalideringen kan også kontrolleres ved hjælp af modellen. Hver tabel i databasen indeholder et bestemt antal felter eller kolonner. Modellen definerer typen for hvert felt i tabellen. Standardattributten bruges i modellen til at indstille en standardværdi for et bestemt område, hvis brugeren for det felt indsætter ingen data. Standardværdien for et felt kan være blank eller en bestemt værdi. Det nul og blank værdier er ikke de samme. nul bruges til at definere, at den tomme værdi er tilladt eller ej for et bestemt felt. Hvis den nul er indstillet til Falsk, så er den tomme streng ikke tilladt i det heltal-indtastede felt, men den tomme streng kan tildeles i det streng-indtastede felt. Hvis den nul er indstillet til Rigtigt, så vil NULL-værdien blive givet i det heltalsfelt i stedet for en tom streng. blank bruges hovedsageligt til formularvalidering og kontrollerer ikke feltets datatype. Måden at bruge Standard og nul attributter i Django-modellen har vist i denne vejledning.

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 databaseapp

B. 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 skaberbruger

C. 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

# Importmodulmodul
fra 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-modul
fra 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 formularmodul
fra 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



% csrf_token%
form.som_p

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-modul
fra 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-modul
fra 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.

Mus Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Musemarkøren og markøren i Windows 10 er meget vigtige aspekter af operativsystemet. Dette kan også siges om andre operativsystemer, så i sandhed er d...
Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...