Skip to content

三、控制语句

一、if判断语句

支持判断符号:>>=<===!=andornot

python
<body>
    {% if age > 18 %}
    	<div>您已成年!</div>
    {% elif age <18 %}
        <div>您未成年!</div>
    {% else %}
    	<div>您刚成年!</div>
    {% endif %}
</body>

二、for循环语句

JinJa2中的for循环只比for循环多了一个endfor代码块

python
<tbody>
	{% for book in books %}
    	<tr>
        	<td>{{book.name}}</td>
        	<td>{{book.author}}</td>
            <td>{{book.price}}</td>
        </tr>
	{% endfor %}
</tbody>

如果books中无数据

python
<tbody>
	{% for book in books %}
    	<tr>
        	<td>{{book.name}}</td>
        	<td>{{book.author}}</td>
            <td>{{book.price}}</td>
        </tr>
      {% else %}
    	<tr colspan="3" style="text-align:center">无数据</tr>
	{% endfor %}
</tbody>

for循环中的变量

变量描述
loop.index当前迭代的序号,从1开始
loop.index0当前迭代的序号,从0开始
loop.revindex当前迭代的逆向序号(最后一次为1,倒数第二次为2,以此类推)
loop.revindex0当前迭代的逆向序号(最后一次为0,倒数第二次为1,以此类推),从0开始
loop.first判断当前是否是第一次迭代
loop.last判断当前是否是最后一次迭代
loop.length序列的长度
loop.cycle和外层的循环一起循环某个序列
loop.depth在多层循环中,指示当前是在第几层循环,从1开始
loop.depth0在多层循环中,指示当前是在第几层循环,从0开始
loop.previtem当前迭代的上一个元素。如果当前迭代是第一次选代,这个变量会返回undefined对象
loop.nextitem当前迭代的下一个元素。如果当前迭代是最后一次迭代,这个变量会返回undefined 对象
loop.changed判断当前元素的某个值是否和上一次迭代一样,如果不一样,返回 True,否则返回 False