[英]Flask-WTForms can't find WTForms in my project directory
这是我关于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。 如何通知html5.py文件在根目录中查找wtforms?
这是我的项目的来源-https: //bitbucket.org/lucas_mendelowski/wblog/src
我认为您的Virtualenv没有Flask-WTF模块。 在virtualenv下的命令行中编写以下命令
pip install Flask-WTF
或者您可以这样做,但不建议这样做。
easy_install Flask-WTF
我认为,我终于解决了这个问题(但是我不确定这是否正确)。
更改这些文件中的导入:
1)flaskwtf / 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
您的导入不正确。 您可能正在做:
from flask.ext.wtf import wtforms
没有这样的模块。 相反,您应该这样做:
from flask.ext.wtf import Form, TextField
如果需要HTML5小部件,只需使用以下内容。 例如,您可以将URLField导入为
from flask.ext.wtf.html5 import URLField
您的输入错误。 另外,请确保安装了Flask-WTF,它会自动安装WTForm。
根据文档,就导入字段而言。
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快速入门指南 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.