在烧瓶迭代期间设置 Jinja 变量的问题

Problem setting the Jinja variable during iteration in flask

我的 HTML 代码如下:

<div class = "methods">
        {% set j = 1 %}
        {% for i in range (4) %}
        <div class = "mrow">
            <div class = "mrow1">
                <div class = "mrow11">
                <img src = "static/images/metodo{{ listofitems[j] }}.png">
                </div>
                <div class = "mrow2 gold">
                    MÉTODO
                </div>
            </div>
            <div class = "mrow1">
                <div class = "mrow11">
                <img src = "static/images/metodo{{ listofitems[j+1] }}.png">
                                    {% set j = j + 2 %}
                                    {{ j }}
                </div>
                <div class = "mrow2 gold">
                    MÉTODO
                </div>
            </div>
        </div>
        {% endfor %}
</div>

我从 flask 传递的变量是 listofitems = [0, 1, 2, 3, 4, 5, 6, 7],图像是 'metodo1.png'、'metodo2.png' 等。它为所有图像设置 src 属性 'metodo1.png' 和 'metodo2.png',忽略我对 j 所做的增量。只有它增加 j 的时间是第一次。我想要总共 8 张图片,每张图片都动态地将源更改为 1...8。使用 {{ j }} 行,它在每第二张图像下打印 3,不再增加它。

非常感谢您。

不是分配一个单独的变量,这在 for 循环本身内是不可能的吗?我假设您希望循环执行 4 次并且应该在每次迭代中显示两个连续的图像。这就是通过修改 for 循环以满足该条件来完成的。

<div class = "methods">
        {% for i in range (1, 9, 2) %}
        <div class = "mrow">
            <div class = "mrow1">
                <div class = "mrow11">
                <img src = "static/images/metodo{{ listofitems[i] }}.png">
                </div>
                <div class = "mrow2 gold">
                    MÉTODO
                </div>
            </div>
            <div class = "mrow1">
                <div class = "mrow11">
                <img src = "static/images/metodo{{ listofitems[i+1] }}.png">
                                    {{ i }}
                </div>
                <div class = "mrow2 gold">
                    MÉTODO
                </div>
            </div>
        </div>
        {% endfor %}
</div>