Formvalidering er en veldig viktig oppgave for ethvert webapplikasjon å legge inn gyldige data i databasen. Brukerne av applikasjonen vil ikke kunne sette inn ugyldige data hvis skjemadataene er validert før de sendes inn. Django kalles MVT (Model View Template) -basert rammeverk der oppgaven til kontrolleren utføres av dette rammeverket. De databaserelaterte oppgavene gjøres etter modell og dataene presenteres for malen ved hjelp av View. Feltene i et skjema genereres basert på den bestemte modellen som vil sette inn data i Django-databasen etter validering. Én type validering gjøres av nettleseren, basert på felttypen som er definert i modellen. Bruker er gyldig() funksjon er en annen måte å kontrollere skjemadataene om de er gyldige eller ikke etter at skjemaet er sendt inn. Denne opplæringen viser deg hvordan dataene kan settes inn i Django-databasen etter validering av skjemaet.
Forutsetninger
Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver:
- Installer Django versjon 3+ på Ubuntu 20+ (helst)
- Lag et Django-prosjekt
- Kjør Django-serveren for å kontrollere at serveren fungerer som den skal eller ikke.
Konfigurer en Django-app
1. Kjør følgende kommando for å opprette en Django-app med navnet valideringsapp.
$ python3 administrere.py startapp valideringapp2. 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 administrere.py skaperbruker3. Legg til appnavnet i INSTALLERT_APP del av py fil.
INSTALLED_APPS = [..
'valideringapp'
]
4. Opprett en mappe med navnet maler inne i valideringsapp mappen og still inn malens plasseringen av appen i MALER del av py fil.
MALER = [.. .
'DIRS': ['/ home / fahmida / django_pro / validationapp / templates'],
.. .
,
]
Validering av Django-skjema
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 filen fra app-mappen og legg til følgende skript for å lage strukturen til kunder bord. Tabellen vil inneholde fire felt. Dette er fullnavn, e-postadresse, kontaktnummer og kundetype. Her opprettes kundetypen etter valgstype. Det betyr at brukeren må velge hvilken som helst verdi fra rullegardinlisten.
modeller.py
# Importer modellerfra django.db import modeller
# Definer klasse for kundeoppføring
klasse Kunde (modeller.Modell):
# Definer verdier for kundetypen
type = (
('betalt', 'betalt'),
('gratis', 'gratis')
)
# Definer feltene for kundetabellen
fullnavn = modeller.CharField (max_length = 50)
e-post = modeller.EmailField ()
contact_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 registrering av Kunde modellen i Django-databasen for å få tilgang til kunder tabell fra Django administrative dashbord.
admin.py
# Importer administrasjonsmodulfra django.bidrag importadministrator
# Importer kundemodell
fra .modeller importerer kunde
# Registrer kundemodell
admin.nettstedet.registrer (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 skjemamodulfra django importskjemaer
# Importer kundemodell
fra valideringsapp.modeller importerer kunde
# Definer klassen for kundeskjemaet
klasse CustomerForm (skjemaer.ModelForm):
klasse Meta:
modell = kunde
felt = ('full_name', 'email', 'contact_no', 'customer_type')
Lag mal
Opprett en HTML-fil med navnet kunde.html med følgende skript for å vise det tidligere utformede skjemaet med Lagre knapp.
kunde.html
Kundens inngangsskjema
Sett inn data etter skjemavalidering
Endre innholdet i utsikt.py filen med følgende skript. AddCustomer () funksjonen brukes i skriptet for å sette inn en ny post i kunder tabellen etter validering av skjemaet. Hvis skjemaet ikke sendes inn, vil skjemaet lastes inn ved hjelp av kunden.html fil. Hvis skjemaet sendes med gyldige data, vil en ny post bli satt inn ved hjelp av lagre() funksjon og en suksessmelding blir skrevet ut i nettleseren med muligheten til å legge til en ny post.
utsikt.py
# Importer HttpResponse-modulfra django.http.svar import HttpResponse
# Importer gjengivelsesmodul
fra django.snarveier import gjengis
# Importer CustomerForm
fra valideringsapp.skjemaer importerer CustomerForm
# Definer funksjon for å legge til kundeoppføring
def AddCustomer (forespørsel):
hvis forespørsel.metode == "POST":
skjema = CustomerForm (forespørsel.POST)
# Hvis skjemadataene er gyldige eller ikke
hvis skjema.er gyldig():
prøve:
# Lagre skjemadataene i databasen
skjema.lagre()
# Definer meldingen for brukeren
data = ['
Kundedataene er satt inn riktig.
Legg til en annen']
# Returner svaret
returner HttpResponse (data)
unntatt:
sende
ellers:
# Definer skjemaobjektet
skjema = CustomerForm ()
# Vis skjemaet for kundeoppføring
return render (forespørsel, 'kunde.html ', ' form ': form)
Endre nettadresser.py fil av Django-prosjektet med følgende skript. To stier er definert i skriptet. 'kunde/' sti vil bli brukt til å vise skjemaet for å legge til de nye kundepostene. De 'admin /' sti vil bli brukt til å vise Django Administration Dashboard.
nettadresser.py
# Importer administrasjonsmodulfra django.bidrag importadministrator
# Importer banemodul
fra django.URL-adresse for import
# Importer visning
fra valideringapp importvisninger
# Definer sti for kunde og admin
urlpatterns = [
sti ('kunde /', visninger.AddCustomer),
sti ('admin /', admin.nettstedet.nettadresser)
]
Kjør Django-serveren og kjør følgende URL fra nettleseren for å vise skjemaet for kundeoppføring. Hvis den Lagre trykkes på knappen uten å legge til data i skjemaet, så vises neste side med feil for å holde de nødvendige feltene tomme.
Hvis ugyldige data er angitt for e-postfeltet, vises følgende feil.
Følgende informasjon vises hvis skjemaet er sendt inn med gyldige data. Hvis brukeren klikker på 'Legg til en annen' lenke, vil skjemaet vises igjen for å sette inn data for neste post.
Konklusjon
Måten å validere et Django-skjema ble vist i denne veiledningen ved å lage en enkel Django-app. Den nevnte appen vil hjelpe Django-utviklere å forstå viktigheten av skjemavalidering, og de vil være i stand til å gjøre det riktig.