Django

Formvalidering i Django

Formvalidering i Django

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:

  1. Installer Django versjon 3+ på Ubuntu 20+ (helst)
  2. Lag et Django-prosjekt
  3. 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 valideringapp

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 administrere.py skaperbruker

3. 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.

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 modeller
fra 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 administrasjonsmodul
fra 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 skjemamodul
fra 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





Brukerregistreringsskjema


Kundens inngangsskjema

% csrf_token%
skjema.som_p



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-modul
fra 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 administrasjonsmodul
fra 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.

Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...
Beste Linux Distros for spill i 2021
Linux-operativsystemet har kommet langt fra det originale, enkle, serverbaserte utseendet. Dette operativsystemet har forbedret seg enormt de siste år...