我正在使用 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
找到了 Form,但没有找到 TextField 和 BooleanField。这里有什么问题吗?
更新 我刚刚浏览了一些 Flask-WTF 代码,发现了这个:
from flask.ext.wtf import Form
from wtforms.fields import TextField, BooleanField
from wtforms.validators import Required
我使用的是旧版本中的示例还是其他内容?
我安装了 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
我认为 TextField 已被弃用 使用 StringField 代替
from wtforms import StringField
在pycharm中打开终端并安装带有版本号的WTForms
pip 安装 WTForms==2.3.3
别忘了写下版本号。