如何在jinjia2中使用flask-wtf的<select>?

时间:2018-04-16 03:50:52

标签: flask jinja2 flask-wtforms

我想显示&#34;类别&#34; html中的一个数据&#34;选择&#34;领域。 数据来自view.py,数据类别为&#34; category2&#34;。 我用jinjia2来显示html: render_temperlate(数据=数据,形成=形式,&#39; data.html&#39;) 然后我在form.py中定义一个flask-wtf SelectField,如下所示: Class CategoryForm(FlaskForm):     category = SelectField(choices = [(&#39;&#39;,&#39;&#39;),(&#34; category 1&#34;,&#34; category 1&#34;),( &#34;类别2&#34;&#34;类别2&#34)]) 现在,我想在网页html&#34;选择&#34;中显示我的数据类别(它的值是&#34; capetory2&#34;)。标签。 在data.html文件(jinjia2)中,我尝试使用 {{form.category(选项= data.category)}} 显示数据类别(类别2),但在网络中,该字段没有任何内容。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果在创建时将值传递给表单,则在呈现后将在HTML表单中选择该值,您不需要将其作为选项传递。

import flask
from flask_wtf import FlaskForm
from jinja2 import Template
from wtforms import SelectField

class CategoryForm(FlaskForm):
    category = SelectField(choices=[('','') , ("category 1","category 1"),("category 2","category 2")])

    class Meta:
        csrf = False

def index():
    cf = CategoryForm(category="category 1")
    return flask.render_template(
        Template("""
                <html>
                <body>
                    <form method="POST">
                        {{form.category()}}
                        <input type="submit">
                    </form>
                </body>
                </html>
                """),
        form=cf)
相关问题