Я использую Flask для разработки веб-приложения. Я изначально делал HTML-формы вручную, а затем переключился на использование WTForms (это образовательный проект, поэтому я показываю каждый шаг построения проекта).Использование полей HTML5 с WTForms
Я немного смутился при попытке добавить поля формы HTML5, такие как EmailField. Я искал документацию WTForms и онлайн, и я не мог узнать, как создать WTForm с помощью HTML5 EmailField.
Затем я установил этот модуль https://pypi.python.org/pypi/wtforms-html5, который разрешил его, и все сработало. Но я был недоволен добавлением дополнительной зависимости, тем более, что он, похоже, не активно развивается (https://github.com/brutus/wtforms-html5).
Затем я оказался на странице WTForms github и обнаружил, что на самом деле есть поддержка всех новых полей HTML5, но эти поля не импортируются по умолчанию. https://github.com/wtforms/wtforms/blob/master/wtforms/fields/html5.py Поэтому вместо использования
from WTForms import EmailField
Как можно было заключить из
from WTForms import TextField
Один вместо должен использовать
from wtforms.fields.html5 import EmailField
Я был ранее с использованием wtforms-html5 модуль следующим
from wtforms_html5 import EmailField
Поэтому я изменил все вхождения wtforms_html5
на wtforms.fields.html5
, и мое приложение работает точно так, как ожидалось.
Хорошо, спасибо за чтение всего фона. Теперь вопросы:
Почему не какой-либо из полей html5 (EmailField, DateField и т.д.), указанных в документации WTForms?
Почему не эти поля импортируются в WTForms по умолчанию, как и другие
Являются ли эти поля стабильны/предназначены для использования?
Что лучше всего подходит для импорта полей из WTForms?
Для текстового поля можно использовать любое из следующих действий:
from wtforms import TextField
from wtforms.fields import TextField
from wtforms.fields.simple import TextField
Но EmailField, я должен использовать
from wtforms.fields.html5 import EmailField
Я хотел бы:
from wtforms.fields import TextField
from wtforms.fields import EmailField
Но для этого потребуется добавить строку к полям [__init__][1]
файл, который я не желаю делать, поскольку это образовательный проект, и это просто путает учащихся.
Ищу
- Insight, почему WTForms не документ или импорта по умолчанию в полях html5
- Любая причина продолжать использовать модуль стороннего wtforms-html5.
Спасибо за очень полезный и подробный ответ. Является ли документация также о github? Я был бы рад сделать быстрый отчет и добавить подраздел в раздел «Поля», в котором упоминается, что доступны поля HTML5, и как обращаться к ним - если вы и другие сторонники слишком мало ресурсов для выполнения так. Я думаю, что многие люди на данный момент, вероятно, следуют маршруту, который я взял, и установке (или написанию) пакета сторонних пакетов для повторного добавления этих полей. – Sixhobbits