关于python:使用Flask-WTF从字典中填充WTForms表单

Populate WTForms form from dictionary when using Flask-WTF

我有一个Flask-WTF表单,需要从字典中进行填充,我将其作为**kwargs传入。该表单用于使用POST方法访问的Flask路由中。表单无效,并且该字段的值为None。如何将数据字典传递给表单,然后进行验证?

1
2
3
4
5
6
@app.route('/submit', methods=['POST'])
def submit():
    data = {'name': 'eee'}
    form = MyForm(**data)
    print(form.validate())  # False, name is required
    print(form.name.data)  # None

如果没有显式传递数据,则

Flask-WTF在发布路由时会自动传递request.form。您需要将数据作为MultiDict传递,以防止自动行为。传递objdata**kwargs仅设置默认值,仅当没有实际数据传递到表单时才使用默认值。

1
form = MyForm(MultiDict(data))

您必须为构造器使用data参数。您也可以查看文档

1
  form = MyForm(data=data)