Python 将wtforms 0.6升级到1.0 Form TextField data None
我有一个flask/wtforms应用程序,我正在从wtforms 0.6.ish升级到1.0.5。开发框是使用wtforms 0.6的ubuntu,而产品将是使用wtforms 1.0.5的AmazonAMI 为了任何人的利益,迄今为止的以下变化是: 发件人: 致: 发件人: 致: 此外:Python 将wtforms 0.6升级到1.0 Form TextField data None,python,flask,wtforms,Python,Flask,Wtforms,我有一个flask/wtforms应用程序,我正在从wtforms 0.6.ish升级到1.0.5。开发框是使用wtforms 0.6的ubuntu,而产品将是使用wtforms 1.0.5的AmazonAMI 为了任何人的利益,迄今为止的以下变化是: 发件人: 致: 发件人: 致: 此外: 问题是在wtforms 1.0.5中,表单变量“ht”从未设置。如果我试图将其打印到控制台,则为“无”。我没有对模板做任何更改。我可以在类中设置一个默认值,但它不会被用户在表单中输入的内容替换。在新控制器中
问题是在wtforms 1.0.5中,表单变量“ht”从未设置。如果我试图将其打印到控制台,则为“无”。我没有对模板做任何更改。我可以在类中设置一个默认值,但它不会被用户在表单中输入的内容替换。在新控制器中,您实际上没有创建提交表单的实例(缺少括号)。此外,您还将Flask WTForms扩展切换到普通WTForms。Flask WTForms自动使用
request.form
,因此您不必这样做-如果您要使用vanilla WTForms,您需要将request.form
传递给构造函数
# You have
form=SubmitForm
# It should be
form = SubmitForm(request.form)
from wtforms import Form, TextField, validators
def index():
form=SubmitForm()
if form.validate_on_submit():
return render_template('js.html',ht=form.ht.data)
def index():
form=SubmitForm
if request.method == 'POST' and form.validate():
return render_template('js.html',ht=form.ht.data)
class SubmitForm(Form):
ht = TextField('ht', validators = [Required()])
class SubmitForm(Form):
ht = TextField('ht', [validators.Required()])
# You have
form=SubmitForm
# It should be
form = SubmitForm(request.form)