在Flask中遍历已提交的表单字段?

19 投票
2 回答
16921 浏览
提问于 2025-04-17 04:22

在Flask 0.8中,我知道可以通过form.fieldname.data来访问单个表单字段,但有没有简单的方法可以遍历所有的表单字段呢?我正在构建一封电子邮件的内容,想要循环遍历所有字段,为每个字段创建一个名称/值的条目,而不是手动一个个写字段名并添加。

2 个回答

16

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

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

这段内容来自于 https://wtforms.readthedocs.io/en/2.3.x/fields/#wtforms.fields.Field.type

41

我猜您正在使用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

撰写回答