Django

Formularvalidering i Django

Formularvalidering i Django

Formularvalidering er en meget vigtig opgave for enhver webapplikation at indtaste gyldige data i databasen. Brugerne af applikationen kan ikke indsætte ugyldige data, hvis formulardataene valideres, inden de indsendes. Django kaldes MVT (Model View Template) -baseret ramme, hvor controllerens opgave udføres af selve denne ramme. De databaserelaterede opgaver udføres efter model, og dataene præsenteres for skabelonen ved hjælp af View. Felterne i en form genereres baseret på den bestemte model, der indsætter data i Django-databasen efter validering. En type validering udføres af browseren baseret på den felttype, der er defineret i modellen. Bruger er gyldig() funktion er en anden måde at kontrollere formularoplysningerne på, om de er gyldige eller ikke efter indsendelse af formularen. Denne tutorial viser dig, hvordan dataene kan indsættes i Django-databasen efter validering af formularen.

Forudsætninger

Før du træner scriptet til denne vejledning, skal du udføre følgende opgaver:

  1. Installer Django version 3+ på Ubuntu 20+ (helst)
  2. Opret et Django-projekt
  3. Kør Django-serveren for at kontrollere, at serveren fungerer korrekt eller ej.

Opsæt en Django-app

1. Kør følgende kommando for at oprette en Django-app med navnet valideringsapp.

$ python3 administrere.py startapp valideringapp

2. Kør følgende kommando for at oprette den bruger, der bruges til at få adgang til Django-databasen. Hvis du har oprettet brugeren før, behøver du ikke køre kommandoen.

$ python3 administrere.py skaberbruger

3. Tilføj appnavnet i INSTALLERET_APP en del af py fil.

INSTALLED_APPS = [
..
'valideringapp'
]

4. Opret en mappe med navnet skabeloner inde i valideringsapp mappe og indstil skabeloner placering af appen i MALLER en del af py fil.

MALLER = [

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

Validering af Django-form

Du skal skrive koden til følgende filer for at kontrollere formularvalideringsopgaven i Django.

Opret modellen

Åbn modeller.py fil fra app-mappen og tilføj følgende script for at oprette strukturen på kunder bord. Tabellen indeholder fire felter. Disse er fuldnavn, e-mail, kontaktnummer og kundetype. Her oprettes customer_type efter valgstype. Det betyder, at brugeren skal vælge en hvilken som helst værdi fra rullelisten.

modeller.py

# Importer modeller
fra django.db import modeller
# Definer klasse til kundeindtastning
klasse kunde (modeller.Model):
# Definer værdier for kundetypen
type = (
('betalt', 'betalt'),
('gratis', 'gratis')
)
# Definer felterne til kundetabellen
fuldnavn = modeller.CharField (max_length = 50)
e-mail = modeller.EmailField ()
contact_no = modeller.CharField (max_length = 20)
customer_type = modeller.CharField (max_length = 32, valg = type, standard = 'gratis')

Registrer modellen

Tilføj følgende script i administratoren.py fil til registrering af Kunde model i Django - databasen for at få adgang til kunder tabel fra Django administrative dashboard.

admin.py

# Importér admin-modul
fra django.import importadministrator
# Importer kundemodel
fra .modeller importerer kunde
# Registrer kundemodel
admin.websted.registrer (kunde)

skab formularer.py inde i app-mappen og tilføj følgende script for at definere klassen for at oprette formularen baseret på nævnte felter i kunden model.

formularer.py

# Importer formularmodul
fra django importformularer
# Importer kundemodel
fra valideringsapp.modeller importerer kunde
# Definer klassen til kundeformularen
klasse CustomerForm (formularer.ModelForm):
klasse Meta:
model = kunde
felter = ('fuld_navn', 'e-mail', 'contact_no', 'kunde_type')

Opret skabelon

Opret en HTML-fil med navnet kunde.html med følgende script for at vise den tidligere designede formular med Gemme knap.

kunde.html





Brugerregistreringsformular


Kundeindtastningsformular

% csrf_token%
form.som_p



Indsæt data efter formularvalidering

Rediger indholdet af synspunkter.py fil med følgende script. TilføjKunde () funktion bruges i scriptet til at indsætte en ny post i kunder tabel efter validering af formularen. Hvis formularen ikke indsendes, indlæses formularen ved hjælp af kunden.html fil. Hvis formularen indsendes med de gyldige data, indsættes en ny post ved hjælp af Gemme() funktion og en succesmeddelelse udskrives i browseren med mulighed for at tilføje endnu en post.

synspunkter.py

# Importer HttpResponse-modul
fra django.http.svar import HttpResponse
# Import gengivelsesmodul
fra django.genveje import gengivelse
# Importer CustomerForm
fra valideringsapp.formularer importerer CustomerForm
# Definer funktion for at tilføje kundeindtastning
def AddCustomer (anmodning):
hvis anmodning.metode == "POST":
form = CustomerForm (anmodning.STOLPE)
# Hvis formulardataene er gyldige eller ej
hvis form.er gyldig():
prøve:
# Gem formulardataene i databasen
form.Gemme()
# Definer meddelelsen til brugeren
data = ['

Kundedata indsat korrekt.


Tilføj en mere']
# Returner svaret
returner HttpResponse (data)
undtagen:
passere
andet:
# Definer formularobjektet
form = CustomerForm ()
# Vis kundeindtastningsskemaet
return render (anmodning, 'kunde.html ', ' form ': form)

Rediger webadresser.py fil af Django-projektet med følgende script. To stier er defineret i scriptet. 'kunde/' sti vil blive brugt til at vise formularen til at tilføje de nye kundeoptegnelser. Det 'admin /' sti vil blive brugt til at vise Django Administration Dashboard.

webadresser.py

# Importér admin-modul
fra django.import importadministrator
# Importer sti-modul
fra django.webadresser til import af sti
# Importvisning
fra validationsapp importvisninger
# Definer sti til kunde og admin
urlmønstre = [
sti ('kunde /', visninger.AddCustomer),
sti ('admin /', admin.websted.webadresser)
]

Kør Django-serveren, og udfør følgende URL fra browseren for at vise kundeindtastningsformularen. Hvis den Gemme der trykkes på knappen uden at tilføje nogen data i formularen, så vises den næste side med fejl for at holde de krævede felter tomme.

Hvis de ugyldige data er indstillet til e-mail-feltet, vises følgende fejl.

Følgende oplysninger vises, hvis formularen indsendes med gyldige data. Hvis brugeren klikker på 'Tilføj en mere' link vises formularen igen for at indsætte data til den næste post.

Konklusion

Måden at validere en Django-form blev vist i denne vejledning ved at oprette en simpel Django-app. Den nævnte app hjælper Django-udviklere med at forstå vigtigheden af ​​formvalidering, og de vil være i stand til at gøre det ordentligt.

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...