Jinja2 中的控制语句
本章主题
关键词
Jinja2 中的控制语句
Jinja2 中所有的控制语句都是放在 {% ... %}
中,并且有⼀个语句 {% endxxx %}
来进行结束,Jinja2 中常⽤的控制语句有 if/for...in...
if
Jinja2 中的 if
语句的使用 和 python中的使用方法类似,可以使⽤ >
,<
,<=
,>=
,==
,!=
来进⾏判断,也可以通过 and
,or
,not
,()
来进⾏逻辑合并操作:
{% if kenny.sick %}
Kenny is sick.
{% elif kenny.dead %}
You killed Kenny! You bastard!!!
{% else %}
Kenny looks okay --- so far
{% endif %}
for…in…
for
循环可以遍历任何⼀个序列包括 列表 、字典 、元组。并且可以进行反向遍历。
- 普通的遍历:
<ul>
{% for user in users %}
<li>{{ user }}</li>
{% endfor %}
</ul>
- 遍历字典:
<dl>
{% for key, value in my_dict.items() %}
<dt>{{ key }}</dt>
<dd>{{ value }}</dd>
{% endfor %}
</dl>
- 如果序列中没有值的时候,进⼊
else
:
<ul>
{% for user in users %}
<li>{{ user.username }}</li>
{% else %}
<li><em>no users found</em></li>
{% endfor %}
</ul>
并且 Jinja2 中的 for循环 还包含以下变量,可以⽤来获取当前的遍历状态:
变量 | 描述 |
---|---|
loop.index | 当前迭代的索引(从1开始) |
loop.index0 | 当前迭代的索引(从0开始) |
loop.first | 是否是第⼀次迭代,返回True或False |
loop.last | 是否是最后⼀次迭代,返回True或False |
loop.length | 序列的⻓度 |
另外,不可以使⽤ continue
和 break
表达式来控制循环的执⾏。
总结小便条
本篇文章主要讲了以下几点内容:
本章回顾暂时就到这了,如果还有点晕,那就把文章里所有引用的案例代码再敲几遍吧。拜拜~