在for循环中div的flask模板设置id

时间:2016-07-25 11:26:54

标签: python templates for-loop flask

在html文件中:

{% for elems in result2 %}

        <div style="border:1px solid green;">

        {% for elem in elems %}

            {{ elem }}

        {%endfor%}

        </div><br>

{%endfor%}

我想将id提供给<div>,并且ID应设置为{{ elem.1 }}

正如你在这里看到的那样,每一行都将打印在单独的div中,所以在这里我们将进行3次潜水,第一行的id为1,因为第一行的{{ elem.1 }}为1。 ...

(1, 1, 'text') (2, 1, 'text') (3, 1, 'text') (4, 1, 'text')

(5, 2, 'text') (6, 2, 'text')

(7, 3, 'text') (8, 3, 'text') 

但是在{{ elem }}之后打印{%endfor%} ro之前会打开div标签,那我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

我认为您可以使用id="{{ elems[0][1] }}"

答案 1 :(得分:1)

用于result2的数据结构不清楚,但假设它是元组列表的列表,您应该能够使用elems.0.1到达每个列表的第一个元组的第二个元素。在模板中:

{% for elems in result2 %}
        <div id="{{ elems.0.1 }}"" style="border:1px solid green;">
        {% for elem in elems %}
            {{ elem }}
        {%endfor%}
        </div><br>
{%endfor%}

这里我假设result2是这样的:

>>> result2 = [[(1, 1, 'text'), (2, 1, 'text'), (3, 1, 'text'), (4, 1, 'text')],
           [(5, 2, 'text'), (6, 2, 'text')],
           [(7, 3, 'text'), (8, 3, 'text')]]

>>> print(render_template_string(template, result2=result2))


    <div id="1" style="border:1px solid green;">

            (1, 1, 'text')

            (2, 1, 'text')

            (3, 1, 'text')

            (4, 1, 'text')

    </div><br>

    <div id="2" style="border:1px solid green;">

            (5, 2, 'text')

            (6, 2, 'text')

    </div><br>

    <div id="3" style="border:1px solid green;">

            (7, 3, 'text')

            (8, 3, 'text')

    </div><br>