第一步

修改模板加入逻辑语句

If语句格式

django基础5--django模板逻辑语句_逻辑语句

可以使用andor连接布尔类型,但是andor不能合用

可以使用in运算

For语句格式

django基础5--django模板逻辑语句_模板_02

对字典进行遍历

django基础5--django模板逻辑语句_模板_03

1forloop.counter表示循环的次数,它从1开始计数,第一次循环设为1,例如:

代码

1.{% for item in todo_list %}  

2.    <p>`forloop`.`counter `: ` item `</p>  

3.{% endfor %}  


2
forloop.counter0类似于forloop.counter,但它是从0开始计数,第一次循环设为0
3
forloop.revcounter表示循环中剩下的items数量,第一次循环时设为items总数,最后一次设为1
4
forloop.revcounter0类似于forloop.revcounter,但它是表示的数量少一个,即最后一次循环时设为0
5
forloop.first当第一次循环时值为True,在特别情况下很有用:

代码

1.{% for object in objects %}  

2.     {% if forloop.first%}<li class="first">{% else %}<li>{% endif %}  

3.     ` object `  

4.    </li>  

5.{% endfor %}  


6
forloop.last当最后一次循环时值为True

代码

1.{% for link in links %}` link `{% if not forloop.last %} | {% endif %}{%endfor %}  


7
forloop.parentloop在嵌套循环中表示父循环的forloop

代码

1.{% for country in countries %}  

2.    <table>  

3.     {% for city incountry.city_list %}  

4.        <tr>  

5.            <td>Country#` forloop`.`parentloop`.`counter ` </td>  

6.            <td>City#` forloop`.`counter `</td>  

7.            <td>`city `</td>  

8.        </tr>  

9.     {% endfor %}  

10.    </table>  

11.{% endfor %}  


富有魔力的forloop变量只能在循环中得到,当模板解析器到达{% endfor %}forloop就消失了
如果你的模板context已经包含一个叫forloop的变量,Django会用{% for %}标签替代它
Django
会在for标签的块中覆盖你定义的forloop变量的值
在其他非循环的地方,你的forloop变量仍然可用
我们建议模板变量不要使用forloop,如果你需要这样做来访问你自定义的forloop,你可以使用forloop.parentloop