Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Jinja2模板-用于循环_Python_Templates_Jinja2 - Fatal编程技术网

Python Jinja2模板-用于循环

Python Jinja2模板-用于循环,python,templates,jinja2,Python,Templates,Jinja2,没有找到另一篇有类似问题的帖子,我正在尝试使用flask和wtforms生成一些复选框,目前我已经得到了这段代码: <div class="control-group"> <p><strong>Check the enabled BRI Ports</strong></p> <label class="checkbox inline"> {{ form.bri1(value=1) }} {{

没有找到另一篇有类似问题的帖子,我正在尝试使用flask和wtforms生成一些复选框,目前我已经得到了这段代码:

<div class="control-group">
    <p><strong>Check the enabled BRI Ports</strong></p>
    <label class="checkbox inline">
        {{ form.bri1(value=1) }} {{ form.bri1.label }}
    </label>
    <label class="checkbox inline">
        {{ form.bri2(value=1) }} {{ form.bri2.label }}
    </label>
    <label class="checkbox inline">
        {{ form.bri3(value=1) }} {{ form.bri3.label }}
    </label>
    <label class="checkbox inline">
        {{ form.bri4(value=1) }} {{ form.bri4.label }}
    </label>
</div>

检查已启用的BRI端口

{{form.bri1(value=1)}{{{form.bri1.label}} {{form.bri2(value=1)}{{{form.bri2.label} {form.bri3(value=1)}{{form.bri3.label} {form.bri4(value=1)}{{form.bri4.label}
到目前为止,这是可行的,但现在我尝试使用一个简单的for循环来实现这一点,如:

<div class="control-group">
    <p><strong>Check the enabled BRI Ports</strong></p>
    {% for n in range(1,6) %}
    <label class="checkbox inline">
        {{ form.brin.label }}
    {% endfor %}
</div>

检查已启用的BRI端口

{n在(1,6)%范围内的百分比} {{form.brin.label} {%endfor%}
我尝试了(),{}和{{}。。。这可能吗?

试试:

<div class="control-group">
    <p><strong>Check the enabled BRI Ports</strong></p>
    {% for name, field in form._fields.items() %}
        {% if name != 'csrf_token' %}
            <label class="checkbox inline">
                {{ field(value=1) }} {{ field.label }}
            </label>
        {% endif %}
    {% endfor %}
</div>

在这里,您还可以使用
n.\uu str\uuu()
代替过滤器
n | string

这不是关于Flask的问题,因为Flask不包括模板引擎。想必你是在问金甲2号?对不起,我的错,你完全正确。@Killathy所以问题是“射程”?有帮助吗?我尝试了两种方法,第二种方法给出了错误“TypeError:无法连接'str'和'int'对象”。第一个部分工作,但它给了我所有的领域,我只想要布尔菲尔德布里1-4。。。知道吗?对不起,我更新了第二个例子。首先,您可以添加自己的条件:
{%if name.startswith('bri')%}
<div class="control-group">
    <p><strong>Check the enabled BRI Ports</strong></p>
    {% for n in range(1,6) %}
        {% if form['bri' + n|string] %}
            <label class="checkbox inline">
                {{ form['bri' + n|string](value=1) }} {{ form['bri' + n|string].label }}
            </label>
        {% endif %}
    {% endfor %}
</div>