ошибка в WTForms, не в состоянии вызвать класс формы - PullRequest
0 голосов
/ 24 мая 2019

Этот код вызывает ошибку при попытке вызвать класс формы.

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 Ответ

1 голос
/ 24 мая 2019

Я не знаю, какая именно у вас ошибка, но, вообще говоря, вот как вы должны использовать формы с flask-wtf, при условии, что вы используете последнюю версию ( 0.14 ), как я:

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 класс ... Поскольку читаемость имеет значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...