6

これは、StackOverflow に関する私の最初の投稿です。皆さん、こんにちは。

Python と Flask を学習するブログ アプリケーションを作成しており、Google App Engine で起動したいと考えています。残念ながら、WTForms をアプリケーションにインポートする際に小さな問題があります。現在、Flask 0.9、WTForms 1.0.1、および Flask-WTForms 0.8 を使用しています。プロジェクトのルート パスにflaskext_wtf フォルダーを追加しましたが、html5.py ファイルからエラーが発生します。

File "/Users/lucas/Workspace/blog/flask_wtf/html5.py", line 1, in <module>
from wtforms import TextField
File "/Users/lucas/Workspace/blog/flask/exthook.py", line 86, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named flask.ext.wtf.wtforms

私のプロジェクト パスではなく、拡張パス内で wtforms を見つけようとしているようです。ルートで wtforms を探すように html5.py ファイルに通知するにはどうすればよいですか?

これが私のプロジェクトのソースです - https://bitbucket.org/lucas_mendelowski/wblog/src

4

4 に答える 4

6

あなたの Virtualenv には Flask-WTF モジュールがないと思います。virtualenv の下のコマンド ラインに次のコマンドを記述します。

pip install Flask-WTF

または、これを行うこともできますが、お勧めしません。

easy_install Flask-WTF
于 2014-10-14T05:30:44.087 に答える
1

私は最終的にこの問題に対処したと思います(しかし、それが正しい方法かどうかはわかりません)。

これらのファイルのインポートを変更します。

1) フラスコwtf/init_.py

から:

from flask.ext.wtf import html5
from flask.ext.wtf.form import Form
from flask.ext.wtf import recaptcha

from flask.ext.wtf.recaptcha.fields import RecaptchaField
from flask.ext.wtf.recaptcha.widgets import RecaptchaWidget
from flask.ext.wtf.recaptcha.validators import Recaptcha

に:

import html5
from form import Form
import recaptcha

from recaptcha.fields import RecaptchaField
from recaptcha.widgets import RecaptchaWidget
from recaptcha.validators import Recaptcha

2)flaskwtf/recaptcha/init_.py:

から:

from flask.ext.wtf.recaptcha import fields
from flask.ext.wtf.recaptcha import  validators 
from flask.ext.wtf.recaptcha import  widgets

に:

import fields
import validators 
import widgets

github にもソリューションを投稿しました - https://github.com/rduplain/flask-wtf/issues/46#issuecomment-7376577

于 2012-08-04T17:36:38.743 に答える
0

あなたのインポートは間違っています。また、WTForm を自動的にインストールする Flask-WTF を必ずインストールしてください。

ドキュメントによると、フィールドのインポートに関する限り..

From version 0.9.0, Flask-WTF will not import anything from wtforms 
you need to import fields from wtforms.


    from flask_wtf import Form
    from wtforms import TextField
    from wtforms.validators import DataRequired

    class MyForm(Form):
        name = TextField('name', validators=[DataRequired()])

Flask-WTF クイック スタート ガイドを確認してください。

于 2014-04-23T18:31:02.657 に答える
0

インポートが正しくありません。あなたはおそらくやっている:

from flask.ext.wtf import wtforms

そのようなモジュールはありません。代わりに、次のことを行う必要があります。

from flask.ext.wtf import Form, TextField

HTML5 ウィジェットが必要な場合は、以下を使用してください。たとえば、URLField を次のようにインポートできます。

from flask.ext.wtf.html5 import URLField
于 2012-08-02T21:37:46.353 に答える