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 databasappB. 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ändareC. 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-modulenfrå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örsmodulfrå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ärmodulfrå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
Ä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-modulfrå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örsmodulfrå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.