使用 Flask-WTForms,如何设置 html 的表单部分的样式?

Using Flask-WTForms, how do I style my form section of the html?

我通读了 Flask-WTF 极其简化的 wiki,但不太了解我可以用它做什么。我的印象是 html 的 <form> 部分现在只能看起来像

<form method="post">
    {{ form.hidden_tag() }}
    {{ form.name }}
    <input type="submit">
</form>

但我真的想为我的使用物化设计样式,例如:

        <div class="row">
            <div class="input-field col s6">
                <i class="material-icons prefix">account_circle</i>
                <input value="FN" id="first_name" type="text" class="validate">
                <label class="active" for="first_name">First Name</label>
            </div>
            <div class="input-field col s6">
                <input value="LN" id="last_name" type="text" class="validate">
                <label class="active" for="last_name">Last Name</label>
            </div>
        </div>

我可以把 {{ form.first_name }}{{ form.last_name }} 放在哪里?

编辑:让我详细说明一下我的回答: 例如,我想要像 Materialized datepicker 这样的东西(一个很好的弹出式日历,让用户可以选择日期),这应该在 <input class='datepicker' length="50"> 中,但现在我要替换整个 [=18] =] 与 {{ form.date }} 行......我失去了编辑 class 的特权,什么不是。

WTForms 字段可以 called 具有将在它们呈现的输入上设置的属性。将样式、JavaScript 功能等所需的属性传递给字段,而不仅仅是引用字段。标签的行为方式相同,可以使用 field.label.

访问

forvaluetypeidname 不需要传递,因为它们是自动处理的。有一些 rules 用于处理属性的特殊情况。如果属性名称是 Python 关键字,例如 class,请附加下划线:class_。破折号不是有效的 Python 名称,因此单词之间的下划线将转换为破折号; data_toggle 变成 data-toggle.

{{ form.first_name(class_='validate') }}
{{ form.first_name.label(class_='active') }}

{{ form.begins(class_='datepicker', length=50) }}

请注意,这两个链接方法都不需要直接调用,这些文档只是描述了调用字段时的行为。

WTForms 2.1 中,我使用 extra_classes,如下所示:

1.第一种方式

{{ f.render_form_field(form.first_name, extra_classes='ourClasses') }}

或者在你的情况下可能是这样的:

{{ form.first_name, extra_classes='ourClasses' }}

我们也可以像下面第二种方式一样在我们的表单字段上使用 render_kw 属性:

2。第二种方式

style={'class': 'ourClasses', 'style': 'width:50%; other_css_style;'}
first_name = StringField('First name',
                     validators=[InputRequired(),Length(1, 64)],
                     render_kw=style)

但我更愿意使用第一种方式。