Formuliervalidatie is een zeer belangrijke taak voor elke webtoepassing om geldige gegevens in de database in te voeren. De gebruikers van de applicatie kunnen geen ongeldige gegevens invoeren als de formuliergegevens zijn gevalideerd voordat ze worden ingediend. Django wordt op MVT (Model View Template) gebaseerd framework genoemd, waarbij de taak van de controller door dit framework zelf wordt gedaan. De database-gerelateerde taken worden gedaan door Model en de gegevens worden gepresenteerd aan de sjabloon met behulp van View. De velden van een formulier worden gegenereerd op basis van het specifieke model dat na validatie gegevens in de Django-database zal invoegen. Eén type validatie wordt gedaan door de browser op basis van het veldtype dat in het model is gedefinieerd. De ... gebruiken is geldig() functie is een andere manier om de formuliergegevens te controleren of ze geldig zijn of niet na het indienen van het formulier. Deze tutorial laat je zien hoe de gegevens in de Django-database kunnen worden ingevoegd na validatie van het formulier.
Vereisten
Voordat u het script van deze zelfstudie oefent, moet u de volgende taken uitvoeren:
- Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
- Een Django-project maken
- Voer de Django-server uit om te controleren of de server goed werkt of niet.
Een Django-app instellen
1. Voer de volgende opdracht uit om een Django-app met de naam te maken validatieapp.
$ python3 beheren.py startapp validatieapp2. Voer de volgende opdracht uit om de gebruiker te maken die wordt gebruikt om toegang te krijgen tot de Django-database:. Als u de gebruiker eerder hebt gemaakt, hoeft u de opdracht niet uit te voeren.
$ python3 beheren.py createsuperuser3. Voeg de app-naam toe in de INSTALLED_APP deel van de py het dossier.
INSTALLED_APPS = […
'validatieapp'
]
4. Maak een map met de naam Sjablonen binnen in de validatieapp map en stel de Sjablonen locatie van de app in de SJABLONEN deel van de py het dossier.
SJABLONEN = [… .
'DIRS': ['/home/fahmida/django_pro/validationapp/templates'],
… .
,
]
Django-formuliervalidatie
U moet de code voor de volgende bestanden schrijven om de formuliervalidatietaak in Django . te controleren.
- modellen.py
- beheerder.py
- keer bekeken.py
- formulieren.py
- klant.html
Maak het model
Open de modellen.py bestand uit de app-map en voeg het volgende script toe om de structuur van de klanten tafel. De tabel zal vier velden bevatten. Dit zijn de volledige_naam, e-mail, contact_nr en klanttype. Hier wordt het klanttype gemaakt door het selectietype. Dat betekent dat de gebruiker een waarde uit de vervolgkeuzelijst moet selecteren.
modellen.py
# Importeer modellenvan django.db-importmodellen
# Definieer klasse voor klantinvoer
klasse Klant (modellen).Model):
# Definieer waarden voor het klanttype
typ = (
('betaald', 'Betaald'),
('vrij vrij')
)
# Definieer de velden voor de klantentabel
volledige_naam = modellen.CharField(max_length=50)
e-mail = modellen.E-mailveld()
contact_no = modellen.CharField(max_length=20)
klanttype = modellen.CharField(max_length=32, choice=type, default='free')
Registreer het model
Voeg het volgende script toe in de beheerder.py bestand voor het registreren van de Klant model in de Django-database om toegang te krijgen tot de klanten tabel van het Django-beheerdashboard.
beheerder.py
# Beheermodule importerenvan django.bijdrage import beheerder
# Klantmodel importeren
van .modellen importeren Klant:
# Registreer klantmodel
beheerder.website.registreren (klant)
Aanmaken formulieren.py in de app-map en voeg het volgende script toe om de klasse te definiëren om het formulier te maken op basis van de genoemde velden van de klant model-.
formulieren.py
# Formulierenmodule importerenvan django importformulieren
# Klantmodel importeren
van validatieapp.modellen importeren Klant:
# Definieer de klasse voor het klantformulier
class CustomerForm (formulieren).Modelformulier):
klasse Meta:
model = klant
velden = ('full_name', 'e-mail', 'contact_no', 'customer_type')
Sjabloon maken
Maak een HTML-bestand met de naam klant.html met het volgende script om het eerder ontworpen formulier weer te geven met de Sparen knop.
klant.html
Invoerformulier klant
Gegevens invoegen na formuliervalidatie
Wijzig de inhoud van de keer bekeken.py bestand met het volgende script. Klant toevoegen() functie wordt in het script gebruikt om een nieuw record in te voegen in de klanten tabel na validatie van het formulier. Als het formulier niet wordt verzonden, wordt het formulier geladen met de klant.html het dossier. Als het formulier wordt ingediend met de geldige gegevens, wordt een nieuw record ingevoegd met behulp van de sparen() functie en een succesbericht wordt afgedrukt in de browser met de optie om nog een record toe te voegen.
keer bekeken.py
# Import HttpResponse-modulevan django.http.reactie importeren HttpResponse
# Importeer rendermodule
van django.sneltoetsen import render
# Klantformulier importeren
van validatieapp.formulieren importeren CustomerForm
# Definieer functie om klantinvoer toe te voegen
def Klant toevoegen (verzoek):
indien verzoek.methode == "POST":
formulier = CustomerForm (verzoek).POST)
# Als de formuliergegevens geldig zijn of niet
als vorm.is geldig():
proberen:
# Sla de formuliergegevens op in de database
het formulier.sparen()
# Definieer het bericht voor de gebruiker
gegevens = ['
De klantgegevens correct ingevoerd.
Nog een toevoegen']
# Retourneer het antwoord
retour HttpResponse(data)
behalve:
voorbij lopen
anders:
# Definieer het formulierobject
formulier = Klantformulier()
# Toon het klantinvoerformulier
return render(verzoek, 'klant'.html', 'formulier': formulier)
Wijzig de URL's.py bestand van het Django-project met het volgende script:. Er zijn twee paden gedefinieerd in het script. 'klant/' pad wordt gebruikt om het formulier weer te geven om de nieuwe klantrecords toe te voegen. De 'beheerder/' pad wordt gebruikt om het Django-beheerdashboard weer te geven.
URL's.py
# Beheermodule importerenvan django.bijdrage import beheerder
# Padmodule importeren
van django.URL-importpad
# Weergave importeren
van validatieapp-importweergaven
# Definieer pad voor klant en beheerder
urlpatronen = [
pad('klant/', weergaven.klant toevoegen),
pad('admin/', beheerder.website.URL's)
]
Voer de Django-server uit en voer de volgende URL uit vanuit de browser om het klantinvoerformulier weer te geven:. Als de Sparen knop wordt ingedrukt zonder gegevens aan het formulier toe te voegen, verschijnt de volgende pagina met fouten voor het leeg houden van verplichte velden.
Als de ongeldige gegevens zijn ingesteld voor het e-mailveld, verschijnt de volgende fout:.
De volgende informatie zal verschijnen als het formulier is ingediend met geldige gegevens:. Als de gebruiker op de 'Nog een toevoegen' link, zal het formulier opnieuw verschijnen om gegevens in te voegen voor het volgende record.
Conclusie
De manier om een Django-formulier te valideren, werd in deze tutorial getoond door een eenvoudige Django-app te maken. De genoemde app zal Django-ontwikkelaars helpen het belang van formuliervalidatie te begrijpen en ze zouden het goed kunnen doen.