1.6【Flask框架学习】Jinja2控制语句

  • 所有的控制语句都是放在{% … %}中,并且以{% 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版权协议,转载请附上原文出处链接和本声明。