我希望能够将当前循环迭代输出到我的模板.
根据文档:http://wsgiarea.pocoo.org/jinja/docs/loops.html,我正在尝试使用loop.counter变量.
我有以下内容:
<ul>
{% for user in userlist %}
<li>
{{ user }} {{loop.counter}}
</li>
{% if loop.counter == 1 %}
This is the First user
{% endif %}
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
虽然我的模板没有输出任何内容.什么是正确的语法?
当我处于第二个循环时,如何访问循环索引?像这样:
{% for i in range(0, 3) %}
{% for j in range(0, 9) %}
{{ loop1.index + loop2.index }} // ?
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud) {% set cnt = 0 %}
{% for room in rooms %}
{% for bed in room %}
{% set cnt = cnt + 1 %}
{% endfor %}
{{ cnt }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
假设我们有嵌套循环,打印的cnt将始终为0,因为这是我们进入1st循环时定义的内容.当我们在内部循环中递增计数器时,它似乎只是内部循环的局部变量 - 因此它将在循环内部递增,但随后本地cnt消失.我们如何修改全局cnt ???
和Jinja2 doc一样,他们不清楚设置变量范围.唯一提到范围的是内部块的"范围"修饰符,但我想它不能应用于所有内容......疯狂.
{{loop.index}}正确取消引用最里面的循环。但是,如果我嵌套了多个循环,我看不到一种方法来确定我想要哪个循环索引。