Ich verwende Flask, um eine Webanwendung zu entwickeln. Ich habe ursprünglich HTML-Formulare manuell erstellt und bin dann zur Verwendung von WTForms übergegangen (dies ist ein Bildungsprojekt, daher zeige ich jeden Schritt beim Erstellen des Projekts).Verwenden von HTML5-Feldern mit WTForms
Ich habe ein bisschen verwirrt, wenn ich versuche, HTML5-Formularfelder wie EmailField hinzuzufügen. Ich habe die WTForms-Dokumentation und online durchsucht und konnte nicht herausfinden, wie ein WTForm mit einem HTML5-EmailField erstellt wird.
Ich habe dann dieses Modul https://pypi.python.org/pypi/wtforms-html5 installiert, die es erlaubt, und alles hat funktioniert. Aber ich war unglücklich darüber, eine zusätzliche Abhängigkeit hinzuzufügen, zumal es anscheinend nicht aktiv entwickelt wurde (https://github.com/brutus/wtforms-html5).
Ich endete dann auf der WTForms github-Seite und fand heraus, dass tatsächlich alle neuen HTML5-Felder unterstützt werden, diese Felder jedoch nicht standardmäßig importiert werden. https://github.com/wtforms/wtforms/blob/master/wtforms/fields/html5.py daher anstelle der Verwendung
from WTForms import EmailField
Wie schließen aus
from WTForms import TextField
man stattdessen verwenden, hat
from wtforms.fields.html5 import EmailField
I wurde für die wtforms-html5 Modul als
folgtfrom wtforms_html5 import EmailField
Ich habe daher alle Vorkommen von wtforms_html5
zu wtforms.fields.html5
geändert und meine Anwendung funktioniert genau wie erwartet.
Ok, danke fürs Lesen des ganzen Hintergrundes. Nun zu den Fragen:
Warum ist keine der html5 Felder (EmailField, Datefield, usw.) in der WTForms Dokumentation erwähnt?
Warum wie die anderen sind nicht diese Felder
standardmäßig in WTForms importiertSind diese Felder stable/zur bestimmungsgemäßen Verwendung?
Was ist die beste Vorgehensweise beim Importieren von Feldern aus WTForms?
Für Textfeld kann ich eine der folgenden Aktionen verwenden:
from wtforms import TextField
from wtforms.fields import TextField
from wtforms.fields.simple import TextField
Aber für EmailField, ich habe
from wtforms.fields.html5 import EmailField
verwenden würde Ich mag:
from wtforms.fields import TextField
from wtforms.fields import EmailField
Aber das würde erfordern eine Zeile zu den FeldernhinzufügenDatei, die ich nicht tun möchte, da es ein Bildungsprojekt ist und dies würde die Lernenden nur verwirren.
Ich suche
- Einblick, warum WTForms nicht dokumentiert oder durch Standard-Import die html5 Felder
- Gibt es Gründe, mit der wtforms-html5 Dritt Modul fortzufahren.
Danke für die wirklich hilfreiche und detaillierte Antwort. Ist die Dokumentation auch auf GitHub? Ich würde mich freuen, eine kurze Beschreibung zu schreiben und einen Unterabschnitt zum Abschnitt "Felder" hinzuzufügen, in dem erwähnt wird, dass die HTML5-Felder verfügbar sind und wie Sie darauf zugreifen können, wenn Sie und die anderen Betreuer zu wenig Ressourcen zur Verfügung haben damit. Ich denke, viele Leute folgen im Moment wahrscheinlich dem Weg, den ich gegangen bin, und installieren (oder schreiben) das Drittanbieter-Pip-Paket, um diese Felder wieder hinzuzufügen. – Sixhobbits