Inhaltsverzeichnis
Das Erstellen von Formularen kann durch die Verwendung der generische Klassen von Django Wir werden sie jedoch nicht immer verwenden, da wir manchmal die vollständige Logik unsererseits entwickeln müssen.Zum Glück drinnen Django Wir können auch die Art und Weise gestalten, wie wir unsere Formulare verarbeiten und ihre Logik verwalten, damit wir viel personalisiertere Anwendungen erreichen und unseren Zielen näher kommen.
Verknüpfen der Daten mit dem Formular
Wir wissen, dass das Formular eine Möglichkeit ist, Daten vom Benutzer zu nehmen, daher haben wir zwei Zustände davon, mit Daten und ohne DatenWenn das Formular Daten enthält, werden wir unsere Operationen ausführen, wenn es dagegen nichts enthält, müssen wir es für die Datenverarbeitung einfach ignorieren.
AusübungWir werden die folgende Übung von der interaktiven Konsole von . aus durchführen Django, werden wir ein Formular erstellen und mit dem is_bound()-Methode Wir werden überprüfen, ob es verknüpfte Daten hat. Auf diese Weise können wir ein wenig mehr sehen, wie sich das Formular innerhalb des Frameworks verhält. Sehen wir uns die Ergebnisse in der folgenden Abbildung an:
Wie wir im Beispiel sehen, erhalten wir nur dann a ., wenn wir die Werte an das Formular übergeben, während wir die is_bound-Methode verwenden Wahre Antwort.
Daten validieren
Wie wir wissen, können die vom Benutzer eingegebenen Daten, wenn wir im Internet arbeiten, die effektivste Form des Angriffs gegen unsere Anwendung sein, da sie aus Unwissenheit alle Arten von Formaten eingeben können, die unsere Anwendung nicht akzeptieren kann und kann daher in einem fatalen Fehler enden, um dies zu vermeiden, müssen wir uns immer vergewissern, dass die Daten sicher sind, bevor wir sie verarbeiten. Dafür können wir Folgendes verwenden:
def my_view (request): if request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Wenn die Daten hier gültig sind, können wir mit unserer Anwendungslogik fortfahren else : # Ansonsten präsentieren wir nur das Objekt ohne Datenformular = MyForm ()
Wie wir im Beispiel sehen, machen wir eine Instanz der Klasse MeinFormular und wir verbinden die Daten, die in der Anfrage, nach der POST-Methode und solche vom Typ DATEIEN Falls wir ein Bild oder eine Datei eines anderen Typs mitbringen, muss je nach Modell das, was unser Formular bringt, dafür ausgewertet werden is_valid()-Methode, damit stellen wir sicher, dass, wenn ein String kommt, wo eine Zahl stehen sollte, die Information zurückgewiesen wird und sie nicht in die Datenbank gelangen darf, wo sie einen fatalen Fehler verursachen könnte.
Klassenbasierte Ansichten
Mit dem, was wir im vorherigen Beispiel gesehen haben, können wir jetzt sehen, wie wir etwas Ähnliches mit dem anwenden können Klassenbasierte Ansichten und nutzen Sie auf diese Weise die Framework-Tools.
Wenn wir die verwenden Formularansicht generisch von Django Wir können etwas Ähnliches wie den folgenden Code erreichen:
from Django.shortcuts import render, redirect from Django.views.generic.edit import FormView class MyForm (FormView): form_class = MyForm template_name = 'form.html' success_url = '/ success /' def form_valid (self, form): form .save () return super (MyView, self) .form_valid (form)
Wie wir sehen, ermöglicht uns die fortschrittliche Verwendung von Formularen, Anwendungen dynamischer und personalisierter zu gestalten, wodurch wir mit nur wenigen Codezeilen unglaubliche Ergebnisse erzielen können.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben