Python 将wtforms 0.6升级到1.0 Form TextField data None

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”从未设置。如果我试图将其打印到控制台,则为“无”。我没有对模板做任何更改。我可以在类中设置一个默认值,但它不会被用户在表单中输入的内容替换。在新控制器中

我有一个flask/wtforms应用程序,我正在从wtforms 0.6.ish升级到1.0.5。开发框是使用wtforms 0.6的ubuntu,而产品将是使用wtforms 1.0.5的AmazonAMI

为了任何人的利益,迄今为止的以下变化是:

发件人:

致:

发件人:

致:

此外:


问题是在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)