我在Flask中使用带有Jinja2的WTforms。我创建了一个这样的表单:
def print_form(request, db):
class F(Form):
name = StringField('name', default='Mike')
video = SelectField(
'Programming Language',
choices=[('cpp', 'C++'), ('py', 'Python'), ('text', 'Plain Text')],default='py'
)
form1 = F(request.form)
data = {'form1' : form1}
rtemplate = jinja_env2.get_template('test.html')
data = rtemplate.render(**data)
然后我在Jinja2中打印这样的表格:
<table>
{% for field in form1 %}
<tr>
{% if field.type == "BooleanField" %}
<td></td>
<td>{{ field }} {{ field.label }}</td>
{% elif field.type == "HiddenField" %}
<td></td>
<td>{{ field }}</td>
{% elif field.type == "SelectField" %}
<td>{{ field.label }}</td>
<td>{{ field }}</td>
{% else %}
<td>{{ field.label }}</td>
<td>{{ field }}</td>
{% endif %}
</tr>
{% endfor %}
</table>
但是我找不到如何预填充TextField的默认值,它会自动与SelectField一起使用。