在Flask中遍历已提交的表单字段?
在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