web-dev-qa-db-ja.com

Flaskをインポートできません-WTFTextFieldとBooleanField

Virtualenvを使用して新しいプロジェクトを設定しています。以下のように、scriptフォルダーからvirtualenvpipを使用して多くのものをインストールしました。

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

古いバージョンなどの例を使用していますか?

14
Asken

バージョン0.9.0以降、Flask-WTFはwtformsから何もインポートしません。wtformsからフィールドをインポートする必要があります。

ソース

それらをwtformsからインポートする必要があります( docs に従ってインポートステートメントが変更されたことに注意してください):

from flask_wtf import Form

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