判断语句
{% if %}
{% else %} #可省略
{% endif %}
举例如下:
{% if user.age < 18%}
<li>未成年</li>
{% else %}
<li>成年</li>
{% endif %}
其中{% else %}不是必须的,可以直接写成下面的这样
{% if user.age < 18%}
<li>未成年</li>
{% endif %}
在模板语法中没有{% elseif %}这种写法
接下来是 and, not, or
not 可以判断变量是不是存在
{% if not user1 %}
<li>user1不存在</li>
{% endif%}
我们还可以判断某个字符串是否为空
{% if user.name %}
<li>user.name为空</li>
{% endif%}
也可以表示某个数值是否为0
{% if not user.age %}
<li>user.age为0</li>
{% endif %}
循环语句
{% for %}
{% endfor %}
遍历一个list:
{% for book in book_list%}
<li>{{book}}</li>
{% endfor %}
对字典的操作如下:
{% for key in user %}
<li>{{key}}</li>
{% endfor %}
要输入key,value的话,语法如下
{% for key,value in user.items %}
<li>{{key}}:{{value}}</li>
{% endfor %}
Django中的for模版标签中提供很多方便的特性,比如说reversed关键字
reversed 反向迭代
{% for book in book_list reversed %}
<li>{{book}}</li>
{% endfor%}
empty 判断一个序列是否为空
{% empty %}
<li>没有书籍</li>
{% endfor%}
等价于在前面做了一个if判断,简化了语法
注意for语句没有break,continue语句
更多语法如下
{% for book in book_list reversed %}
<li>{{book}}</li>
{% if forloop.first %} #判断是否为循环开始
<li>begin</li>
{% endif%}
<li>forloop.counter : {{forloop.counter}}</li> #从counter索引从1开始
<li>forloop.counter0: {{forloop.counter0}}</li>#从counter索引从0开始
<li>forloop.revcounter : {{forloop.revcounter}}</li>#revcounter表示剩余的循环次数,1结束
<li>forloop.revcounter0 : {{forloop.revcounter0}}</li>#revcounter0表示剩余的循环次数,0结束
{% if forloop.last %} #判断是否为循环结束
<li>last</li>
{% endif%}
{% empty %}
<li>没有书籍</li>
{% endfor%}