【发布时间】:2016-04-14 20:12:38
【问题描述】:
我正在使用 Flask 开发 Web 应用程序。我最初是手动做 HTML 表单,然后切换到使用 WTForms(这是一个教育项目,所以我展示了构建项目的每个步骤)。
在尝试添加 HTML5 表单字段(例如 EmailField)时,我有点困惑。我在网上搜索了 WTForms 文档,但找不到如何使用 HTML5 EmailField 创建 WTForm。
然后我安装了这个模块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,我的应用程序完全按预期工作。
好的,感谢您阅读所有背景资料。现在回答问题:
为什么 WTForms 文档中没有提到任何 html5 字段(EmailField、DateField 等)?
为什么这些字段不像其他字段默认导入到 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]文件中添加一行,我不愿意这样做,因为这是一个教育项目,这只会让学习者感到困惑。
我在找
- 了解为什么 WTForms 不记录或默认导入 html5 字段
- 继续使用 wtforms-html5 第三方模块的任何理由。
【问题讨论】:
标签: python html flask wtforms flask-wtforms