- 所有的控制语句都是放在{% … %}中,并且以{% endxxx %}来进行结束
- Jinja2常用的有if和for…in…
if :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表达式来控制循环
版权声明:本文为qq_35455803原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。