WTForms中的错误,无法调用表单类

时间:2019-05-24 13:11:23

标签: python flask

此代码在尝试调用表单类时引发错误。

from flask import Flask,render_template, request
from flask_wtf import Form
from wtforms import StringField,SubmitField

app=Flask(__name__)

class infoform(Form):
    breed = StringField('what breed are you')
    submit=SubmitField('submit')

@app.route('/',methods=['GET','POST'])
def index():
    breed =False
    form =infoform(request.form)
    if form.validate_on_submit():
        breed= form.breed.data
        form.breed.data=''
    return  render_template('index.html',form=form,breed=breed)

if __name__=='__main__':
    app.run(debug=True)

我希望输出一个带有文本字段并带有标签“您是什么品种”的表格。但是我遇到一个指向form = infoform()的错误,但我无法理解。

1 个答案:

答案 0 :(得分:1)

我不知道您到底有什么错误,但是一般来说,这里是您应该如何使用flask-wtf来使用表单,假设您使用的是最新版本(0.14),就像我一样:< / p>

from flask import Flask,render_template, request
from flask_wtf import FlaskForm
from wtforms import StringField,SubmitField

app=Flask(__name__)

class Infoform(FlaskForm):
    breed = StringField('what breed are you')
    submit=SubmitField('submit')

@app.route('/',methods=['GET','POST'])
def index():
    breed = False
    form = Infoform()
    if form.validate_on_submit():
        breed= form.breed.data
        form.breed.data=''
    return  render_template('index.html',form=form,breed=breed)

if __name__=='__main__':
    app.run(debug=True)

请注意,在第二行中,我导入FlaskForm,而不是 Form。在InfoForm类级别,我继承了FlaskForm类。

最后,与Python增强建议8(PEP8)达成一致,该建议说类的名称必须以大写字母开头,因此我修改了InfoForm类……因为可读性计数