如何在 Jinja 中将 loop.index 设置为变量
How to set loop.index as a variable in Jinja
{% for data in data_list %}
{% set data_index = {{loop.index}} %}
for data_dict in data:
pass
在我的内循环中,我需要在外循环中使用循环索引,所以我打算像上面那样将它设置为一个变量。但语法无效。
怎么做?还是有其他方法获取外循环索引?
您可以使用内置的枚举函数来获取 i
作为变量,如果需要,也可以在内部循环中使用它。
{% for i,data in enumerate(data_list) %}
{{ i }}
{% for j in range(i) %}
{% endfor %}
{% endfor %}
您需要做的就是将 enumerate
或您需要的任何内置 python 函数作为参数传递给渲染模板函数,如下所示
@app.get("/foo")
def foo():
return render_template("foo.html", enumerate=enumerate, range=range)
我认为,您不应该在语句 ({%..%}) 中使用表达式 ({{..}}),试试这个:
{% for data in data_list %}
{% set data_index = loop.index %}
for data_dict in data:
pass
{% for data in data_list %}
{% set data_index = {{loop.index}} %}
for data_dict in data:
pass
在我的内循环中,我需要在外循环中使用循环索引,所以我打算像上面那样将它设置为一个变量。但语法无效。
怎么做?还是有其他方法获取外循环索引?
您可以使用内置的枚举函数来获取 i
作为变量,如果需要,也可以在内部循环中使用它。
{% for i,data in enumerate(data_list) %}
{{ i }}
{% for j in range(i) %}
{% endfor %}
{% endfor %}
您需要做的就是将 enumerate
或您需要的任何内置 python 函数作为参数传递给渲染模板函数,如下所示
@app.get("/foo")
def foo():
return render_template("foo.html", enumerate=enumerate, range=range)
我认为,您不应该在语句 ({%..%}) 中使用表达式 ({{..}}),试试这个:
{% for data in data_list %}
{% set data_index = loop.index %}
for data_dict in data:
pass