如何从WTForms表单自动生成完整的HTML

hyp*_*not 7 python sqlalchemy jinja2 wtforms

我正在尝试使用Jinja2模板为SQLAlchemy应用程序创建一个简单的基于WTForms的管理界面。

我已经阅读了WTForms-Alchemy文档,并且我了解它可以通过几行代码从我的模型自动生成表单,例如:

class UserForm(ModelForm):
    class Meta:
        model = User
Run Code Online (Sandbox Code Playgroud)

我的问题是,即使我自动生成了此表单,也找不到任何有关如何将其转换为功能HTML页面的资源。有一些有关字段呈现错误的摘要,还有一些SO答案提到了用于呈现整个字段的宏,但是我发现关于如何自动生成完整的功能形式的资源绝对没有。

//我知道这是Flask-Admin可能已经做的事情,我没有使用Flask,因此不幸的是这是不可能的。

jum*_*pap 9

WTForms让您自己决定将表单传递到模板后如何呈现表单。呈现表单的最简单方法是仅遍历表单并呈现字段。调用字段(或其标签)时,它将发出HTML。

<form action="/some_url" method="POST">
   {% for field in form %}
       {{ field.label() }}
       {{ field() }}
   {% endfor %}

   <button type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

此处提供的宏提供了一种自动方式来生成围绕这些字段的HTML。

  • 很好,尽管它也正在打印CSRF令牌标签。到目前为止,`{%if field.type!='CSRFTokenField'%} ... {%endif%}`可以正常工作。 (6认同)