标签在模板中作用很重要,在业务中对视图中传递过来的数据,控制逻辑和循环渲染,判断输出等等。语法:{% tag %}。
if
判断条件,控制逻辑输出
格式1
{% if info.boy_num >= 30 %}
大于等于30
{% endif %}
格式2
{% if info.boy_num >= 30 %}
大于等于30
{% else %}
小于20
{% endif %}
格式3
{% if info.boy_num >= 30 %}
大于等于30
{% elif info.boy_num >= 20 %}
大于等于20
{% else %}
小于20
{% endif %}
for
格式
{% for 变量 in 列表 %}
语句
{% endfor %}
示例
格式1
<ul>
{% for stu in students %}
<li>{{stu.name}}</li>
{% endfor %}
</ul>
格式2
<ul>
{% for stu in students %}
<li>{{stu.name}}</li>
{% empty %}
<li>无数据</li>
{% endfor %}
</ul>
注意:列表为空或者列表不存在时执行语句2
{{forloop.counter}}
可以在循环中使用,表示这是循环的第几次
示例
<ul>
{% for stu in students %}
<li>{{forloop.counter}}-{{stu.name}}</li>
{% empty %}
<li>无数据</li>
{% endfor %}
</ul>
comment
作用:注释多行,并可注释变量
示例
{% comment %}
<h2>这是多行注释</h2>
<p>即使有变量或者方法也会被注释 {{info.get_name}}</p>
{% endcomment %}
ifequal、ifnotequal
作用:判断是否相等或者不相等
格式:
{% ifequal 值1 值2 %}
语句
{% endifequal %}
说明:如果值1等于值2执行下面语句
示例:
{% ifequal info.boy_num info.girl_num %}
班级{{info.name}}:男女生数目一致
{% else %}
班级{{info.name}}:男女生数目不一致
{% endifequal %}
<br/>
{% ifnotequal info.boy_num info.girl_num %}
班级{{info.name}}:男女生数目不一致
{% else %}
班级{{info.name}}:男女生数目一致
{% endifnotequal %}
include
作用:加载模板并以标签内的参数渲染
格式:{% include '模板目录' 参数1 参数2 %}
url
作用:反向解析
格式:{% url 'namespace:name' p1 p2 %}
示例
{% url 'app:blog' %}
csrf_token
作用:用于跨站请求伪造保护
格式:
{% csrf_token %}
block、extend
作用:用于模板的继承
格式:
{% block 标签名 %}
内容
{% endblock 标签名 %}
autoexcape
使用标签 控制自动转义
示例:
关闭自动转义
{% autoescape off %}
{{code}}
{% endautoescape %}
开启自动转义
{% autoescape on %}
{{code}}
{% endautoescape %}