Django

Användning av standardvärdet för NULL i Django Model

Användning av standardvärdet för NULL i Django Model
Modellen är en av de viktigaste delarna av den databasbaserade Django-applikationen. Modellen definierar databasens struktur. Datatypen för databastabellen och sättet att infoga data baserat på olika attribut beskrivs i modellen. Datavalideringen kan också kontrolleras med hjälp av modellen. Varje tabell i databasen innehåller ett visst antal fält eller kolumner. Modellen definierar typen för varje fält i tabellen. Standardattributet används i modellen för att ställa in ett standardvärde för ett visst område om användaren för det fältet infogar inga data. Standardvärdet för ett fält kan vara tom eller något specifikt värde. De null och tom värdena är inte desamma. null används för att definiera att det tomma värdet är tillåtet eller inte för ett visst fält. Om den null är satt till Falsk, då är den tomma strängen inte tillåten i det heltalstypade fältet, men den tomma strängen kan tilldelas i det strängtypade fältet. Om den null är satt till Sann, sedan kommer NULL-värdet att ges i det heltalstypade fältet i stället för en tom sträng. blank används främst för formulärvalidering och kontrollerar inte fältets datatyp. Sättet att använda standard och null attribut i Django-modellen har visats i denna handledning.

Förutsättningar:

Innan du tränar på skriptet i den här självstudien måste du slutföra följande uppgifter.

A. Installera Django version 3+ på Ubuntu 20+ (helst)
B. Skapa ett Django-projekt
C. Kör Django-servern för att kontrollera att servern fungerar korrekt eller inte.

Ställ in en Django-app:

A. Kör följande kommando för att skapa en Django-app med namnet databasapp.

$ python3 hantera.py startapp databasapp

B. Kör följande kommando för att skapa användaren för åtkomst till Django-databasen. Om du har slutfört användaren tidigare behöver du inte köra kommandot.

$ python3 hantera.py skaparanvändare

C. Lägg till appnamnet i INSTALLERAD_APP del av inställningarna.py-fil.

INSTALLED_APPS = [
..
'validationapp'
]

D. Skapa en mapp med namnet mallar inuti databasapp mapp och ställ in mallar plats för appen i MALLAR del av inställningar.py fil.

MALLAR = [

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

Designmodell med standard- och nullattribut:

Ändra modeller.py fil med följande skript för att skapa en tabell med namnet Produkter som innehåller fyra fält utan id-fältet. Dessa namn, pris, tillverkningsdatum och utgångsdatum. Värdet av null attribut är satt till True för alla fält. Värdet av det tomma attribut är satt till True för alla fält också. Detta innebär att användaren kan hålla fälten tomma innan de skickar in formuläret som ska använda den här modellen. De standard attributvärdet ställs in för priset, tillverkningsdatum och utgångsdatum.

modeller.py

# Importera modeller-modulen
från django.db-importmodeller
# Skapa klass för att definiera strukturen för lärartabellen
klass Produkt (modeller.Modell):
namn = modeller.CharField (max_length = 50, null = True, blank = True)
pris = modeller.IntegerField (null = True, default = ", blank = True)
manufacturing_date = modeller.DateField (null = True, default = '0000-00-00', blank = True)
expire_date = modeller.DateField (null = True, default = '0000-00-00', blank = True)

Kör följande migreringskommandon för att skapa nödvändiga migreringsfiler och SQLite-databasens databastabell.

$ python3 hantera.py makemigrations databasapp
$ python3 hantera.py migrera

Datainsättning med Django Administration Dashboard:

Ändra innehållet i administratören.py fil med följande skript för att registrera modellen i databasen.

administration.py
Ändra webbadresser.py fil med följande skript för att definiera sökvägen för att öppna Django Administrative Dashboard.

webbadresser.py

# Importera administratörsmodul
från django.bidrag importadministratör
# Importera sökvägsmodul
från django.webbadress för webbadresser
# Definiera sökväg för kund och admin
urlmönster = [
sökväg ('admin /', admin.webbplats.webbadresser)
]

Kör nu Django-servern och gå till Django Administrative Dashboard med hjälp av följande URL.

http: // localhist: 8000 / admin

öppna produktinmatningsformuläret genom att klicka Lägg till produkt. Om användaren skickar in formuläret utan att infoga data visas följande utdata i webbläsaren. Här visar två datumfält fel eftersom standardvärdet för datumfältet inte är i ett giltigt format.

Följande utdata visas efter att giltiga datumdata har lagts till. Här, den pris fältet är tomt för att använda standardattributet.

Datainsättning med mallen:

Sättet att infoga data i Produkter tabell med HTML-formulär har visats i detta avsnitt. Här kommer formelementen att genereras baserat på den modell som har skapats tidigare.

former.py

# Importera formulärmodul
från django importformulär
# Importera kundmodell
från dbapp.modeller importerar produkt
# Definiera klassen för kundformuläret
klass ProductForm (formulär.ModelForm):
klass Meta:
modell = Produkt
fält = '__all__'

Skapa HTML-filen med namnet produkt.html inuti mallar mappen i appen med följande skript. Formulärdata skickas in när användaren klickar på Spara knapp.

produkt.html

Kundens anmälningsformulär



% csrf_token%
form.som_p

Ändra utsikt.py fil med följande skript för att infoga data i Produkter efter valideringen av formuläret. Lägg till produkt () funktionen definieras i skriptet för att kontrollera att formuläret skickas in eller inte, och om formuläret skickas, kommer det att kontrollera att formulardata är giltiga eller ogiltiga. Om är giltig() funktionen återgår Sann, sedan infogas uppgifterna i Produkter tabell och ett framgångsmeddelande visas i webbläsaren.

utsikt.py

# Importera HttpResponse-modul
från django.http.svar import HttpResponse
# Importera renderingsmodul
från django.genvägar importeras
# Importera produktform
från dbapp.formulär importerar ProductForm
# Definiera funktion för att lägga till produktinmatning
def AddProduct (begäran):
om begäran.metod == "POST":
form = ProductForm (begäran.POSTA)
# Om formulärdata är giltiga eller inte
om form.är giltig():
Prova:
# Spara formulärdata i databasen
form.spara()
# Definiera meddelandet för användaren
data = ['

Produkten tillagd.

']
# Returnera svaret
returnera HttpResponse (data)
bortsett från:
passera
annan:
# Definiera formobjektet
form = ProductForm ()
# Visa formuläret för produktinmatning
return render (begäran, 'produkt.html ', ' form ': form)

Ändra webbadresser.py fil med följande skript för att definiera sökvägen till visningsfunktionen.

webbadresser.py

# Importera administratörsmodul
från django.bidrag importadministratör
# Importera sökvägsmodul
från django.webbadress för webbadresser
# Importera vy
från dbapp-importvyer
# Definiera sökväg för kund och admin
urlmönster = [
sökväg (", vyer.AddProduct),
sökväg ('admin /', admin.webbplats.webbadresser)
]

Kör nu Django-servern och öppna baswebbadressen i webbläsaren.

http: // lokalhistorisk: 8000 /

Följande formulär visas.

Det följande ValueError visas om användaren skickar in formuläret utan att lägga till data i formuläret. Här, den pris fältet är ett heltal som inte kan vara den tomma strängen.

Om användaren anger giltiga uppgifter som formuläret nedan och trycker på Spara knappen kommer en ny produktpost att infogas i databasen.

Följande bild visas om du öppnar den nyinsatta posten från Django Dashboard.

Slutsats:

En modell har designats med null- och standardattribut i den här självstudien. Därefter har sätten att infoga data i dessa fält i backend och frontend visats här för att hjälpa läsaren att känna till användningen av standard- och nullattribut i Django-databasen.

Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...
Bästa Gamepad Mapping Apps för Linux
Om du gillar att spela spel på Linux med en gamepad istället för ett typiskt tangentbord och musinmatningssystem, finns det några användbara appar för...
Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...