Formvalidering i Django

Formvalidering i Django

Skjemavalidering er en veldig viktig oppgave for enhver webapplikasjon å legge inn gyldige data i databasen. Brukerne av applikasjonen vil ikke kunne sette inn ugyldige data hvis skjemadata blir validert før de sender inn. Django kalles MVT (Model View Template) -baserte rammer der kontrollerens oppgave gjøres av dette rammeverket i seg selv. De databaserelaterte oppgavene gjøres etter modell, og dataene presenteres for malen ved hjelp av visning. Feltene i et skjema genereres basert på den aktuelle modellen som vil sette inn data i Django -databasen etter validering. En type validering gjøres av nettleserbasert på felttypen som er definert i modellen. Bruker er gyldig() Funksjon er en annen måte å sjekke skjemaets data om de er gyldige eller ikke etter å ha sendt skjemaet. Denne opplæringen viser deg hvordan dataene kan settes inn i Django -databasen etter å ha validert skjemaet.

Forutsetninger

Før du øver på skriptet til denne opplæringen, må du fullføre følgende oppgaver:

  1. Installer Django versjon 3+ på Ubuntu 20+ (helst)
  2. Lag et Django -prosjekt
  3. Kjør Django -serveren for å sjekke at serveren fungerer som den skal eller ikke.

Sett opp en Django -app

1. Kjør følgende kommando for å opprette en Django -app som heter ValidationApp.

$ Python3 Administrer.py startapp validationApp

2. Kjør følgende kommando for å opprette brukeren som brukes til å få tilgang til Django -databasen. Hvis du har opprettet brukeren før, trenger du ikke kjøre kommandoen.

$ Python3 Administrer.Py CreateSuperuser

3. Legg til appnavnet i Installert_app del av py fil.

Installert_apps = [
..
'ValidationApp'
]

4. Opprett en mappe som heter Maler inne i ValidationApp mappe og angi malens Plasseringen av appen i Maler del av py fil.

Maler = [

.. .
'Dirs': ['/home/fahmida/django_pro/validationapp/maler'],
.. .
,
]

Django formvalidering

Du må skrive koden for følgende filer for å sjekke skjemavalideringsoppgaven i Django.

  • modeller.py
  • admin.py
  • utsikt.py
  • skjemaer.py
  • kunde.html

Lag modellen

Åpne modeller.py fil fra app -mappen og legg til følgende skript for å opprette strukturen til Kunder bord. Tabellen vil inneholde fire felt. Dette er full_navn, e -post, kontakt_no og customer_type. Her opprettes Customer_Type etter valgtype. Det betyr at brukeren må velge hvilken som helst verdi fra rullegardinlisten.

modeller.py

# Importer modeller
Fra Django.DB importmodeller
# Definer klasse for kundeoppføring
Klassekunde (modeller.Modell):
# Definer verdier for kundetypen
type = (
('betalt', 'betalt'),
('gratis', 'gratis')
)
# Definer feltene for kundetabellen
full_name = modeller.Charfield (Max_Length = 50)
E -post = modeller.E -postfield ()
Kontakt_no = modeller.Charfield (max_length = 20)
customer_type = modeller.Charfield (max_length = 32, valg = type, standard = 'gratis')

Registrer modellen

Legg til følgende skript i Administratoren.py fil for å registrere Kunde modell i Django -databasen for å få tilgang til Kunder Bord fra Django Administrative Dashboard.

admin.py

# Importer administratormodul
Fra Django.bidra importadministrator
# Importer kundemodell
fra .Modeller importerer kunde
# Registrer kundemodellen
admin.nettstedet.Register (kunde)

Skape skjemaer.py Inne i app -mappen og legg til følgende skript for å definere klassen for å lage skjemaet basert på nevnte felt av kunden modell.

skjemaer.py

# Importer skjemamodul
fra Django importformer
# Importer kundemodell
Fra valideringApp.Modeller importerer kunde
# Definer klassen for kundeformen
Klasse CustomerForm (skjemaer.Modelform):
Klassemeta:
modell = kunde
felt = ('full_name', 'e -post', 'contact_no', 'customer_type')

Lag mal

Lag en HTML -fil som heter kunde.html med følgende skript for å vise det tidligere designet skjemaet med Lagre knapp.

kunde.html





Brukerregistreringsskjema


Skjema for kundeinnføring


% csrf_token %
Form.as_p



Sett inn data etter skjemavalidering

Endre innholdet i utsikt.py fil med følgende skript. AddCustomer () Funksjon brukes i skriptet for å sette inn en ny post i Kunder Tabell etter å ha validert skjemaet. Hvis skjemaet ikke sendes inn, vil skjemaet lastes inn ved hjelp av kunden.html fil. Hvis skjemaet sendes inn med gyldige data, vil en ny post bli satt inn ved hjelp av lagre() Funksjon og en suksessmelding vil bli skrevet ut i nettleseren med muligheten til å legge til en annen post.

utsikt.py

# Importer httpResponse -modul
Fra Django.http.Responsimport HttpResponse
# Import Render Module
Fra Django.snarveier import gjengivelse
# Importer CustomerForm
Fra valideringApp.skjemaer importerer kundeform
# Definer funksjon for å legge til kundeoppføring
def addCustomer (forespørsel):
Hvis forespørsel.Metode == "POST":
Skjema = CustomerForm (forespørsel.POST)
# Hvis skjemaene er gyldige eller ikke
Hvis form.er gyldig():
prøve:
# Lagre skjemadata i databasen
form.lagre()
# Definer meldingen for brukeren
data = ['

Kundedataene som er satt inn riktig.


Legg til en annen']
# Returner svaret
Returner HttpResponse (data)
unntatt:
sende
ellers:
# Definer formobjektet
Form = CustomerForm ()
# Vis kundeinnføringsskjema
Retur Render (forespørsel, 'kunde.html ', ' form ': form)

Endre URLS.py Fil av Django -prosjektet med følgende skript. To stier er definert i skriptet. 'kunde/' banen vil bli brukt til å vise skjemaet for å legge til de nye kundepostene. De 'admin/' Stien vil bli brukt til å vise Django Administration Dashboard.

URLS.py

# Importer administratormodul
Fra Django.bidra importadministrator
# Importer banemodul
Fra Django.URLS importerer bane
# Importer visning
Fra validationApp importvisninger
# Definer bane for kunde og admin
urlpatterns = [
bane ('kunde/', visninger.AddCustomer),
bane ('admin/', admin.nettstedet.URL)
]

Kjør Django -serveren og utfør følgende URL fra nettleseren for å vise kundeinnføringsskjemaet. Hvis Lagre Knappen trykkes uten å legge til noen data i skjemaet, så vises følgende side med feil for å holde nødvendige felt tomme.

Hvis de ugyldige dataene er angitt for e -postfeltet, vil følgende feil vises.

Følgende informasjon vises hvis skjemaet sendes inn med gyldige data. Hvis brukeren klikker på 'Legg til en annen' lenke, skjemaet vises igjen å sette inn data for neste post.

Konklusjon

Måten å validere en Django -skjema ble vist i denne opplæringen ved å lage en enkel Django -app. Den nevnte appen vil hjelpe Django -utviklere til å forstå viktigheten av formvalidering, og de vil kunne gjøre det ordentlig.