模板参数:{{ 参数 }}
模板标签:{% … %}
1、if
(1) {% if 表达式 %}
....
{% endif %}
(2) {% if 表达式 %}
....
{%else%}
....
{% endif %}
(3) {% if 表达式 %}
....
{%elif 表达式%}
....
{% endif %}
if表达式 可以使用and or来组合判断
还可以使用in,ont in
2、for
(1) {% for i in xx%}
....
{% endfor %}
(2) {% for i in xx %}
....
{% empyt %}
...
{% endfor %}
(3){{ forloop.counter }} # 表示当前是第几次循环,顺序,下标从1开始
(4){{ forloop.counter0}} # 顺序,下标从0开始
(5){{ forloop.revcounter }} # 逆序, 下标从1开始
(6){{ forloop.revcounter0 }} # 逆序, 下标从0开始
(7){{ forloop.first }} # 是否为第一次循环,返回bool
# 例子:
{% for object in objects %}
{% if forloop.first %}
<li class="class">
{% else %}
<li>
{% endif %}
{{ object }}</li>
{% endfor %}
(8){{ forloop.last }} # 是否是最后一个值(循环),返回bool
# 例子:
{% for link in links %}
{{ link }}{% if not forloop.last %} | {% endif %}
{% endfor %}
(9){{ forloop.parentloop }}
# 例子:
{% for country in countries %}
<table>
{% for city in country.city_list %}
<tr>
<td>Country #{{ forloop.parentloop.counter }}</td>
<td>City #{{ forloop.counter }}</td>
<td>{{ city }}</td>
</tr>
{% endfor %}
</table>
{% endfor %}
3、过滤器
(1) {{ var|过滤器 }}
# 作用:在变量显示前修改
(2) {{ var|add:2 }} # add没有减法,只能加负数
{{ var|add:-2 }}
(3) {{ var|lower }} # 小写
(4) {{ var|first|upper }} # 大写
(5) {{ bol|truncatechars:30 }} # 截断
(6) {{ student|join "=" }} # 字符串添加
(7) {{ var|default:value}} # 传入默认值,如果传入的变量为空,则使用默认值
(8) {{ dataVal| data:'"y-m-d h:m:s:ms'}} # 日期转换
(9) {{ code|safe }} # 设置自动转义,如果code为安全代码,则渲染html,如果不设置safe,
则源代码输出
4、模板继承(block)
(1) 继承体
{% block XXX%}
code
{% endblock %}
(2) 继承路径:extends,写在开头位置
{% extends '父模板路径' %}
(3)include: 加载模板进行渲染
{% include '模板文件' %}
(4){{ block.super }} : 获取父模板中block中的内容
注:继承父模板时会将父模板覆盖,这个方法会显示出父模板的内容
5、注释
单行注释:{# 被注释的内容 #}
多行注释:{% comment %}
内容
{% endcomment %}
6、其他
乘除:{% widthratio 数 分母 分子 %}
整除:{% if num | divisibleby:2 %}