Python 烧瓶WTF表格不';没有属性';在提交时验证';
我使用Flask WTF在提交表单时验证表单。我正在使用Python 烧瓶WTF表格不';没有属性';在提交时验证';,python,flask,wtforms,flask-wtforms,Python,Flask,Wtforms,Flask Wtforms,我使用Flask WTF在提交表单时验证表单。我正在使用表单。请在提交()时验证,但出现以下错误: AttributeError: 'PickASong' object has no attribute 'validate_on_submit' 为什么会出现此错误,如何修复 import flask from flask import Flask from flask import render_template from flask import Flask from flask impor
表单。请在提交()时验证,但出现以下错误:
AttributeError: 'PickASong' object has no attribute 'validate_on_submit'
为什么会出现此错误,如何修复
import flask
from flask import Flask
from flask import render_template
from flask import Flask
from flask import request
from flask import render_template
from flask import redirect
from flask.ext.wtf import Form
from wtforms import *
from wtforms import StringField, BooleanField
from wtforms.validators import DataRequired
from flask.ext.wtf import Form
from wtforms import Form, TextField, BooleanField, PasswordField, TextAreaField, validators
class PickASong(Form):
song = TextField(u'Song title', validators=[DataRequired()])
class PickAnumber(Form):
songNumber = IntegerField(u'Please select song number', validators=[DataRequired()])
app = Flask(__name__)
@app.route("/",methods=["POST","GET"])
def hello():
form = PickASong(csrf_enabled=False)
if form.validate_on_submit():
user = form.song.data
print user
d=str(user)
print d
# search(d)
cmd = "python Search.py --q \"" + d +'"'
os.system(cmd)
return redirect('/2')
return render_template('searchtwo.html', form=form)
您从flask.ext.wtf导入表单
导入了,然后从wtforms导入*
导入了,其中包括基本wtforms表单
。因此名称Form
指的是绑定到它的最后一个对象,wtforms.Form
。这就是您避免导入*
的原因。一个快速解决方法是将从Flaskwtf导入表单移动到下方的从wtforms导入*
。正确的解决方法是只导入您需要的内容,而不是导入所有内容。如果您需要两个表单,请将一个导入别名为,这样名称就不会冲突:来自flask\u wtf导入表单为FlaskForm
您已经在顶部的大导入块下冗余地写入了以下导入
from flask.ext.wtf import Form
from wtforms import Form, TextField, BooleanField, PasswordField, TextAreaField, validators
只需不从wtforms
导入Form
,或颠倒两行即可实现即时修复
from flask.ext.wtf import Form
from wtforms import TextField, BooleanField, PasswordField, TextAreaField, validators