四、 DTL

变量 {{ 变量 }},变量里面可以包含 . 
标签 {% 代码块 %}
过滤器 {{ 变量|过滤器 }}
注释 {# 代码块或者html都可以被注册 #}

变量

如果变量中含有点:则解析顺序如下
如{{book.id}}:
1. 当做一个字典处理
2. 属性或者方法查询(方法不用带小括号)
3. 当做列表或者元组查询,把id当做索引
4. 在模板中调用方法不能传递参数,因为模板里面不能写小括号.

标签

for标签
{ %for ... in ...%}
循环逻辑
{{forloop.counter}}表示当前是第几次循环
{ %empty%}
给出的列表为或列表不存在时,执行此处
{ %endfor%}

if标签
{ %if ...%}
逻辑1
{ %elif ...%}
逻辑2
{ %else%}
逻辑3
{ %endif%}

过滤器

1. 语法:{ { 变量|过滤器 }},例如{ { name|lower }},表示将变量name的值变为小写输出
2. 使用管道符号 (|)来应用过滤器   
3. 通过使用过滤器来改变变量的计算结果
4. 可以在if标签中使用过滤器结合运算符
如:
{{if list1|length > 1}}
{{name|lower|upper}}
{{list|join:", "}}

{{A|add:B}} # A+B
{% widthratio A B C%} # A/B*C