Django

Formvalidering i Django

Formvalidering i Django

Formvalidering är en mycket viktig uppgift för alla webbapplikationer att ange giltiga data i databasen. Användarna av applikationen kommer inte att kunna infoga ogiltiga uppgifter om formulärdata valideras innan de skickas. Django kallas MVT (Model View Template) -baserat ramverk där styrenhetens uppgift utförs av detta ramverk själv. De databasrelaterade uppgifterna utförs efter modell och data presenteras för mallen med hjälp av View. Fälten i ett formulär genereras baserat på den specifika modellen som kommer att infoga data i Django-databasen efter validering. En typ av validering görs av webbläsaren baserat på den fälttyp som definieras i modellen. Använda är giltig() funktionen är ett annat sätt att kontrollera formulärdata om de är giltiga eller inte efter att ha skickat formuläret. Denna handledning visar dig hur data kan införas i Django-databasen efter att formuläret har validerats.

Förutsättningar

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

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

Ställ in en Django-app

1. Kör följande kommando för att skapa en Django-app med namnet valideringsapp.

$ python3 hantera.py startapp valideringapp

2. Kör följande kommando för att skapa användaren som används för att komma åt Django-databasen. Om du har skapat användaren tidigare behöver du inte köra kommandot.

$ python3 hantera.py skaparanvändare

3. Lägg till appnamnet i INSTALLERAD_APP del av py fil.

INSTALLED_APPS = [
..
'validationapp'
]

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

MALLAR = [

.. .
'DIRS': ['/ home / fahmida / django_pro / validationapp / mallar'],
.. .
,
]

Django Form Validation

Du måste skriva koden för följande filer för att kontrollera formulärvalideringsuppgiften i Django.

Skapa modellen

Öppna modeller.py fil från appmappen och lägg till följande skript för att skapa strukturen för kunder tabell. Tabellen innehåller fyra fält. Dessa är fullständigt namn, e-post, kontaktnummer och kundtyp. Här skapas kundtypen efter urvalstyp. Det betyder att användaren måste välja vilket värde som helst i listrutan.

modeller.py

# Importera modeller
från django.db-importmodeller
# Definiera klass för kundinträde
klass Kund (modeller.Modell):
# Definiera värden för kundtypen
typ = (
('betald', 'betalt'),
('gratis', 'gratis')
)
# Definiera fälten för kundtabellen
fullnamn = modeller.CharField (max_length = 50)
e-post = modeller.EmailField ()
contact_no = modeller.CharField (max_length = 20)
customer_type = modeller.CharField (max_length = 32, choice = type, default = 'free')

Registrera modellen

Lägg till följande skript i administratören.py fil för registrering av Kund -modellen i Django-databasen för att komma åt kunder från Django administrativa instrumentpanel.

administration.py

# Importera administratörsmodul
från django.bidrag importadministratör
# Importera kundmodell
från .modeller importerar kund
# Registrera kundmodell
administration.webbplats.registrera (kund)

Skapa former.py inuti appmappen och lägg till följande skript för att definiera klassen för att skapa formulär baserat på nämnda fält av kunden modell.

former.py

# Importera formulärmodul
från django importformulär
# Importera kundmodell
från valideringsapp.modeller importerar kund
# Definiera klassen för kundformuläret
klass CustomerForm (formulär.ModelForm):
klass Meta:
modell = Kund
fields = ('full_name', 'email', 'contact_no', 'customer_type')

Skapa mall

Skapa en HTML-fil med namnet kund.html med följande skript för att visa det tidigare utformade formuläret med Spara knapp.

kund.html





Användarregistreringsformulär


Kundens anmälningsformulär

% csrf_token%
form.som_p



Infoga data efter formulärvalidering

Ändra innehållet i utsikt.py fil med följande skript. AddCustomer () funktionen används i skriptet för att infoga en ny post i kunder efter valideringen av formuläret. Om formuläret inte skickas in laddas formuläret med kunden.html fil. Om formuläret skickas med giltiga data kommer en ny post att infogas med hjälp av spara() funktion och ett framgångsmeddelande kommer att skrivas ut i webbläsaren med möjlighet att lägga till ytterligare en post.

utsikt.py

# Importera HttpResponse-modul
från django.http.svar import HttpResponse
# Importera renderingsmodul
från django.genvägar importeras
# Importera kundformulär
från valideringsapp.formulär importerar CustomerForm
# Definiera funktion för att lägga till kundinmatning
def AddCustomer (begäran):
om begäran.metod == "POST":
form = CustomerForm (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 = ['

Kunddata infogas korrekt.


Lägg till en till']
# Returnera svaret
returnera HttpResponse (data)
bortsett från:
passera
annan:
# Definiera formobjektet
form = CustomerForm ()
# Visa kundformuläret
return render (begäran, 'kund.html ', ' form ': form)

Ändra webbadresser.py fil för Django-projektet med följande skript. Två vägar har definierats i skriptet. 'kund/' sökväg används för att visa formuläret för att lägga till de nya kundposterna. De 'administration/' sökväg kommer att användas för att visa Django Administration Dashboard.

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 valideringsappens importvyer
# Definiera sökväg för kund och admin
urlmönster = [
sökväg ('kund /', vyer.AddCustomer),
sökväg ('admin /', admin.webbplats.webbadresser)
]

Kör Django-servern och kör följande URL från webbläsaren för att visa kundinmatningsformuläret. Om den Spara knappen trycks in utan att lägga till data i formuläret, så kommer nästa sida att visas med fel för att hålla obligatoriska fält tomma.

Om ogiltiga data är inställda för e-postfältet visas följande fel.

Följande information kommer att visas om formuläret skickas med giltiga uppgifter. Om användaren klickar påLägg till en till' länk kommer formuläret att visas igen för att infoga data för nästa post.

Slutsats

Sättet att validera ett Django-formulär visades i denna handledning genom att skapa en enkel Django-app. Den nämnda appen hjälper Django-utvecklare att förstå vikten av formulärvalidering och de skulle kunna göra det ordentligt.

Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...
Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...