Django – Fortgeschrittene Formen

Die Konstruktion von Formularen kann durch die Verwendung der generischen Django- Klassen erheblich erleichtert werden, wir werden sie jedoch nicht immer verwenden, da wir manchmal die vollständige Logik unseres Teils entwickeln müssen.

Glücklicherweise können wir in Django auch die Art und Weise festlegen, wie wir unsere Formulare verarbeiten und wie ihre Logik verwaltet wird. Auf diese Weise erzielen wir viel individuellere Anwendungen, die unseren Zielen nahe kommen.

Verknüpfen der Daten mit dem Formular

Wir wissen, dass das Formular eine Möglichkeit ist, Daten vom Benutzer abzurufen. Daher gibt es zwei Zustände: mit und ohne Daten . Wenn das Formular Daten enthält, werden unsere Vorgänge ausgeführt, und wenn es nichts enthält, schulden wir es einfach ignorieren für die Datenverarbeitung.

Übung
Wir werden die folgende Übung ausführen, von der interaktiven Django- Konsole aus ein Formular erstellen und mit der is_bound () -Methode überprüfen, ob ihm Daten zugeordnet sind. Auf diese Weise können wir ein bisschen mehr über das Verhalten des Formulars im Framework erfahren. Sehen wir uns das Bild unter den Ergebnissen an:

django_form_avz.jpg

Wie wir im Beispiel sehen, erhalten wir nur dann eine True-Antwort, wenn wir die Werte mit der is_bound-Methode an das Formular übergeben.

Daten validieren

Wie wir wissen, stellen die vom Benutzer eingegebenen Daten bei der Arbeit im Internet möglicherweise die effektivste Form eines Angriffs auf unsere Anwendung dar. Dies liegt daran, dass Sie aufgrund mangelnder Kenntnisse eine beliebige Art von Format eingeben können, das unsere Anwendung nicht akzeptieren kann endet in einem schwerwiegenden Fehler, um dies zu vermeiden, müssen wir immer sicherstellen, dass die Daten sicher sind, bevor wir sie verarbeiten. Wir können Folgendes verwenden:

 def my_view (Anfrage): 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 sonst: #Andernfalls präsentieren wir nur das Objekt ohne Daten form = MyForm () 

Wie wir im Beispiel sehen, erstellen wir eine Instanz der MyForm- Klasse und verknüpfen die in der Anforderung enthaltenen Daten mit der POST-Methode und den Daten des FILES- Typs, falls wir je nach Modell ein Bild oder eine Datei eines anderen Typs importieren Damit unser Formular ausgewertet werden muss, verwenden wir die Methode is_valid () . Damit stellen wir sicher, dass die Informationen abgelehnt werden, wenn ein String an die Stelle kommt, an der eine Zahl kommen soll, und dass es nicht erlaubt ist, die Datenbank zu erreichen, wo dies einen Fehler verursachen könnte tödlich

See also  So legen Sie die Taskleiste in Windows 10 Horizontal ab

Klassenbasierte Ansichten

Mit dem, was wir im vorherigen Beispiel gesehen haben, können wir jetzt sehen, wie wir etwas Ähnliches mit den klassenbasierten Ansichten anwenden und somit die Framework-Tools verwenden können.

Wenn wir das generische Django FormView verwenden , können wir etwas erreichen, das dem folgenden Code ähnelt:

 aus Django.shortcuts importieren rendern, umleiten aus Django.views.generic.edit importieren Sie FormView Klasse 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 erweiterte Verwendung der Formulare, dynamischere Anwendungen und eine personalisiertere Art und Weise zu erstellen, mit der wir mit wenigen Codezeilen unglaubliche Ergebnisse erzielen können.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *