我无法导入 Flask-WTF TextField 和 BooleanField

新手上路,请多包涵

我正在使用 virtualenv 来设置一个新项目。我使用脚本文件夹中的 virtualenv pip 安装了很多东西,如下所示:

 flask\scripts\pip install Flask-WTF

我没有在全局 python 文件夹中安装其他包。我的代码如下所示:

 # Importing TextField and BooleanField is not working...
from flask.ext.wtf import Form, TextField, BooleanField
from flask.ext.wtf import Required

class LoginForm(Form):
    openid = TextField('openid', validators=[Required()])
    remember_me = BooleanField('remember_me', default=False)

发现其他软件包,如 sqlalchemy 也只安装在虚拟环境中。

我得到的错误是:

 (flask) D:\Development\grading>flask\Scripts\python.exe restserver.py Traceback (most recent call last):
File "restserver.py", line 1, in <module> from app import app
File "D:\Development\grading\app__init__.py", line 12, in <module> from forms import LoginForm
File "D:\Development\grading\app\forms.py", line 1, in <module> from flask.ext.wtf import Form, TextField, BooleanField
File "D:\Development\grading\flask\lib\site-packages\flask\exthook.py", line 87, in load_module
raise ImportError('No module named %s' % fullname) ImportError: No module named flask.ext.wtf.TextField

已找到表单,但未找到 TextField 和 BooleanField。这里有什么问题?

更新 我只是查看了一些 Flask-WTF 代码并发现了这个:

 from flask.ext.wtf import Form
from wtforms.fields import TextField, BooleanField
from wtforms.validators import Required

我是在使用旧版本的示例还是什么?

原文由 Asken 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 918
2 个回答

从 0.9.0 版本开始,Flask-WTF 将不会从 wtforms 中导入任何内容,您需要从 wtforms 中导入字段。

来源

您需要从 wtforms 导入它们(请注意,根据 docs 导入语句已更改):

 from flask_wtf import Form

from wtforms import TextField, BooleanField
from wtforms.validators import Required

原文由 Blender 发布,翻译遵循 CC BY-SA 3.0 许可协议

安装 WTForms 2.3.3 后,我遇到了同样的问题并解决了

pip 安装 WTForms==2.3.3

 from flask_wtf import FlaskForm
from flask_wtf import Form
from wtforms import TextField, BooleanField, TextAreaField

原文由 Mahmoud Magdy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题