Django – Formen

Die Erfassung von Benutzerdaten ist für Webanwendungen von entscheidender Bedeutung. Bei dieser Erfassung kann es sich um vordefinierte Daten handeln, z. B. um Werte in ausgewählten Feldern oder Optionsfeldern , und es kann sich auch um offenen Text handeln, z. B. um Texteingabe oder Textbereich wenn wir auf etwas ausführlichere Informationen warten.

Abgesehen davon, dass alle diese Arten der Datenerfassung HTML-Elemente sind, müssen sie sich in einem Formular befinden. Ein Formular ist ein Container, in dem wir Elemente platzieren, die Benutzerdaten erfassen, und diese dann über die Methoden senden können HTTP GET oder POST, wobei letzteres am häufigsten verwendet wird.

Die Felder unserer Form

Die Generierung eines Formulars in Django ist der Generierung eines Modells sehr ähnlich, da auch das deklarative Formular verwendet wird, mit dem wir jedes Element als Attribut der Formularklasse zuweisen.

Erinnere dich
Trotz der oben erwähnten Ähnlichkeit weisen die Modelle und Formen einige wichtige Unterschiede auf, von denen einer darin besteht, dass sie sich darin unterscheiden, wie sie die Felder finden und erkennen können. Beispielsweise überprüft ein Modell, ob ein Attribut eine contrib_to_class () – Methode hat Wenn das Attribut tatsächlich ein Feld ist, wird überprüft, ob es sich um eine Instanz von Django.forms.fields.Field handelt .

Generierung des Formulars

Um ein Formular zu generieren, müssen wir zuerst die Klasse erstellen, die es enthält, unsere Formularklasse zu einer Unterklasse des Formularmoduls machen und sie in eine neue Datei namens forms.py im Anwendungsordner einfügen .

In dieser Klasse erstellen wir eine Meta-Klasse, in der wir angeben, auf welches Modell sich unser Formular bezieht, und in unserer Ansicht die Formularklasse angeben und schließlich die Vorlage in der Anwendung leeren. Sehen wir uns im folgenden Bild eine Art Formular an:

See also  Zugriff auf externe Daten mit Knockout.js

django_form.jpg

Wichtig
Wie wir sehen, importieren wir die Formularkomponente und das Modell unserer Anwendung . Auf diese Weise können wir es beim Deklarieren der Formularklasse verwenden. Sobald dies erledigt ist, gehen wir zu der Ansicht, in der wir der entsprechenden Klasse mitteilen müssen, dass Sie dieses Formular verwenden sollen. Sehen wir uns im Bild Folgendes an:

django_form2.jpg

Diese Ansicht entspricht einer klassenbasierten Ansicht . Theoretisch muss kein Formular deklariert werden. In unserer Anwendung ist jedoch möglicherweise ein benutzerdefiniertes Formular erforderlich, das weniger Felder oder zusätzliche Felder enthält.

Der letzte Schritt besteht darin, das Formular in der entsprechenden Vorlage anzuzeigen. Dazu verwenden wir die Formularkontextvariable , um die Felder drucken zu können. Im folgenden Code können wir sehen, worauf wir uns beziehen:

django_form3.jpg
Wir sehen, dass wir das Formular mit HTML-Code definieren und in dem Kontext, in dem wir es übergeben, reicht dies aus, um die entsprechenden Felder zu generieren. Ein weiterer Aspekt, den wir berücksichtigen müssen, ist der Enctype , wenn unser Formular eine Datei erhält, die wir platzieren müssen die mehrteiligen / Formulardaten

administrator

Leave a Reply

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