Formularvalidierung in Django

Formularvalidierung in Django

Formularvalidierung ist eine sehr wichtige Aufgabe für jede Webanwendung, um gültige Daten in die Datenbank einzugeben. Die Benutzer der Anwendung können keine ungültigen Daten einfügen, wenn die Formulardaten vor der Übermittlung validiert werden. Django heißt MVT (Modellansichtsvorlage) basierend. Die datenbankbezogenen Aufgaben werden vom Modell erledigt und die Daten werden der Vorlage mithilfe der Ansicht angezeigt. Die Felder eines Formulars werden basierend auf dem jeweiligen Modell generiert, das Daten nach der Validierung in die Django -Datenbank einfügt. Eine Art von Validierung erfolgt durch den auf dem Feldtyp basierenden Browser, der im Modell definiert ist. Verwendung der ist gültig() Die Funktion ist eine weitere Möglichkeit, die Formulardaten zu überprüfen, unabhängig davon, ob sie gültig sind oder nicht nach der Übermittlung des Formulars. In diesem Tutorial wird angezeigt, wie die Daten nach der Validierung des Formulars in die Django -Datenbank eingefügt werden können.

Voraussetzungen

Bevor Sie das Skript dieses Tutorials üben, müssen Sie die folgenden Aufgaben erledigen:

  1. Installieren Sie die Django Version 3+ auf Ubuntu 20+ (vorzugsweise)
  2. Erstellen Sie ein Django -Projekt
  3. Führen Sie den Django -Server aus, um zu überprüfen, ob der Server ordnungsgemäß funktioniert oder nicht.

Richten Sie eine Django -App ein

1. Führen Sie den folgenden Befehl aus, um eine Django -App mit dem Namen zu erstellen ValidationApp.

$ python3 verwalten.PY StartApp ValidationApp

2. Führen Sie den folgenden Befehl aus, um den Benutzer zu erstellen, der zum Zugriff auf die Django -Datenbank verwendet wird. Wenn Sie den Benutzer zuvor erstellt haben, müssen Sie den Befehl nicht ausführen.

$ python3 verwalten.Py erzeugt

3. Fügen Sie den App -Namen in die hinzu Installed_app Teil der py Datei.

Installed_apps = [

"ValidationApp"
]

4. Erstellen Sie einen Ordner mit dem Namen Vorlagen in der ValidationApp Ordner und setzen Sie die Vorlage Ort der App in der Vorlagen Teil der py Datei.

Vorlagen = [

… .
'Dirs': ['/home/fahmida/django_pro/validationApp/templates'],
… .
,
]

Django -Formularvalidierung

Sie müssen den Code für die folgenden Dateien schreiben, um die Formularvalidierungsaufgabe in Django zu überprüfen.

  • Modelle.py
  • Administrator.py
  • Ansichten.py
  • Formen.py
  • Kunde.html

Erstellen Sie das Modell

Öffne das Modelle.py Datei aus dem App -Ordner und fügen Sie das folgende Skript hinzu, um die Struktur der zu erstellen Kunden Tisch. Die Tabelle enthält vier Felder. Dies sind Full_Name, E -Mail, Contact_No und Customer_Type. Hier wird der Customer_Type nach Auswahltyp erstellt. Das bedeutet, dass der Benutzer einen Wert aus der Dropdown -Liste auswählen muss.

Modelle.py

# Modelle importieren
von django.DB -Importmodelle
# Klasse für den Kundeneintrag definieren
Klassenkunde (Modelle.Modell):
# Die Werte für den Kundentyp definieren
Typ = ((
('bezahlt', 'bezahlt'),
('frei frei')
)
# Definieren Sie die Felder für die Kundentabelle
full_name = models.Charfield (max_length = 50)
E -Mail = Modelle.E -Mailfield ()
contact_no = Modelle.Charfield (max_length = 20)
Customer_type = Modelle.Charfield (max_length = 32, Choices = Typ, default = 'Free')

Registrieren Sie das Modell

Fügen Sie das folgende Skript in hinzu in der admin.py Datei zur Registrierung der Registrierung Kunde Modell in der Django -Datenbank, um auf die zuzugreifen Kunden Tabelle aus dem Django Administrative Dashboard.

Administrator.py

# Admin -Modul importieren
von django.Import Administrator beibringen
# Kundenmodell importieren
aus .Modelle importieren Kunden
# Kundenmodell registrieren
Administrator.Grundstück.Registrieren (Kunde)

Erstellen Formen.py Im App -Ordner und das folgende Skript hinzufügen, um die Klasse zu definieren, um das Formular basierend auf den genannten Feldern von zu erstellen der Kunde Modell.

Formen.py

# Formuliermodul importieren
aus Django -Importformularen
# Kundenmodell importieren
Aus ValidationApp.Modelle importieren Kunden
# Definieren Sie die Klasse für das Kundenformular
Klassenkundenform (Formulare.Modelform):
Klassenmeta:
Modell = Kunde
fields = ('full_name', 'mail', 'contact_no', 'customer_type')

Vorlage erstellen

Erstellen Sie eine HTML -Datei mit dem Namen Kunde.html mit dem folgenden Skript, um das zuvor entworfene Formular mit dem anzuzeigen Speichern Taste.

Kunde.html





Benutzerregistrierungsformular


Kundeneintragsformular


% csrf_token %
form.AS_P



Daten nach Formularvalidierung einfügen

Ändern Sie den Inhalt der Ansichten.py Datei mit dem folgenden Skript. AddCustomer () Funktion wird im Skript verwendet, um einen neuen Datensatz in die Kunden Tabelle nach der Validierung des Formulars. Wenn das Formular nicht eingereicht wird, wird das Formular mithilfe des Formulars geladen der Kunde.html Datei. Wenn das Formular mit den gültigen Daten eingereicht wird, wird ein neuer Datensatz mit dem eingefügt speichern() Funktion und eine Erfolgsnachricht werden im Browser mit der Option zum Hinzufügen eines weiteren Datensatzes gedruckt.

Ansichten.py

# HTTPResponse -Modul importieren
von django.http.Antwort import httpesponse
# Rendermodul importieren
von django.Verknüpfungen importieren Render
# Kundenform importieren
Aus ValidationApp.Formulare importieren Kundenform
# Funktion definieren, um den Kundeneintrag hinzuzufügen
Def AddCustomer (Anfrage):
bei Anfrage.Methode == "Post":
Formular = Customerform (Anfrage.POST)
# Wenn die Formulardaten gültig sind oder nicht
Wenn Form.ist gültig():
versuchen:
# Speichern Sie die Formulardaten in der Datenbank
form.speichern()
# Definieren Sie die Nachricht für den Benutzer
Daten = ['

Die Kundendaten wurden ordnungsgemäß eingefügt.


Neue hinzufügen']
# Die Antwort geben
Rückgabe httPesponse (Daten)
außer:
passieren
anders:
# Definieren Sie das Formularobjekt
Form = Customerform ()
# Zeigen Sie das Kundeneintragsformular
Rendrend zurückgeben (Anfrage, Kunde.html ', ' Form ': Form)

Modifiziere den URLs.py Datei des Django -Projekts mit dem folgenden Skript. Im Skript wurden zwei Pfade definiert. 'Kunde/' Der Pfad wird verwendet, um das Formular anzuzeigen, um die neuen Kundenaufzeichnungen hinzuzufügen. Der 'Administrator/' Der Pfad wird verwendet, um das Django Administration Dashboard anzuzeigen.

URLs.py

# Admin -Modul importieren
von django.Import Administrator beibringen
# Pfadmodul importieren
von django.URLS -Importweg
# Ansicht importieren
Aus ValidationApp -Importansichten
# Pfad für Kunden und Administrator definieren
urlpatterns = [
Pfad ('Kunde/', Ansichten.AddCustomer),
Pfad ('Admin/', Administrator.Grundstück.URLs)
]

Führen Sie den Django -Server aus und führen Sie die folgende URL aus dem Browser aus, um das Kundeneintragsformular anzuzeigen. Wenn der Speichern Die Taste wird gedrückt, ohne Daten in das Formular hinzuzufügen, und dann wird die folgende Seite mit Fehlern angezeigt, um die erforderlichen Felder leer zu halten.

Wenn die ungültigen Daten für das E -Mail -Feld festgelegt sind, wird der folgende Fehler angezeigt.

Die folgenden Informationen werden angezeigt, wenn das Formular mit gültigen Daten übermittelt wird. Wenn der Benutzer auf die 'klicktNeue hinzufügen' Link wird das Formular erneut angezeigt, um Daten für den nächsten Datensatz einzufügen.

Abschluss

Die Möglichkeit zur Validierung eines Django -Formulars wurde in diesem Tutorial durch Erstellen einer einfachen Django -App gezeigt. Die genannte App wird Django -Entwicklern helfen, die Wichtigkeit der Form zur Formvalidierung zu verstehen, und sie könnten es ordnungsgemäß tun.