Django

Formuliervalidatie in Django

Formuliervalidatie in Django

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:

  1. Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
  2. Een Django-project maken
  3. 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 validatieapp

2. 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 createsuperuser

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

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 modellen
van 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 importeren
van 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 importeren
van 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





Gebruikersregistratieformulier


Invoerformulier klant

% csrf_token %
het formulier.as_p



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-module
van 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 importeren
van 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.

HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...
Hoe FPS-teller in Linux-games te tonen
Linux-gaming kreeg een grote duw toen Valve in 2012 Linux-ondersteuning voor Steam-client en hun games aankondigde. Sindsdien hebben veel AAA- en indi...