迭代Flask中提交的表单字段?

时间:2011-10-15 12:35:25

标签: python flask

在Flask 0.8中,我知道我可以使用form.fieldname.data访问单个表单字段,但有一种简单的方法可以迭代所有表单字段吗?我正在构建一个电子邮件正文,我想遍历所有字段并为每个字段创建一个字段名/值条目,而不是通过命名每个字段并附加来手动构建它。

2 个答案:

答案 0 :(得分:27)

我怀疑你正在使用WTForms

您可以迭代表单数据:

for fieldname, value in form.data.items():
    pass

您可以遍历所有表单字段:

for field in form:
    # these are available to you:
    field.name
    field.description
    field.label.text
    field.data

答案 1 :(得分:10)

表单对象上定义了一个迭代器:

{% for field in form %}
    <tr>
    {% if field.type == "BooleanField" %}
        <td></td>
        <td>{{ field }} {{ field.label }}</td>
    {% else %}
        <td>{{ field.label }}</td>
        <td>{{ field }}</td>
    {% end %}
    </tr>
{% endfor %}

这是http://wtforms.simplecodes.com/docs/0.6/fields.html