Templates标签使用
以下是Temlates标签的内容
一、变量
- 变量是views传给模板的值(字典)
- 遵守标签
- 语法:
- {{var}} 注:找不到var时就不显示var是字典键
- 点语法
- 如果key找到的是对象,可以用点语法如: {{var.属性(或方法)}} 注:方法是不能有括号的,不能传参数。
- 字典
- 数字索引
二、标签
- 语法
{% tag %}{% endtag %}
- 作用
- 在输出中创建文本
- 控制逻辑和循环
- 标签内容
- if
if elif else 用于判断 - for}
{% for tem in list%}
语句
{% endfor %}
{% for tem in list%}
语句
{% empty %}
当list为空或列表不存在时执行
{% endfor %}
注:{ forloop.counter }在for中使用,表示当前是第几次循环,从数字1开始。
- comment
作用:表示注释
语法:
{% comment %}
注释内容
{% endcomment%}
- ifequal | ifnotequal
{% ifequal value1 value2 %}
当value1=value2时,执行
{% endifequal %}
- include
作用:加载模板并以标签内的参数渲染
语法:
{% include 参数1 参数2 %}
在ulr中使用
url(path,include(viewspath,namespace=‘appname’)),
- url
作用:反向解析
语法:
{% url ‘namespace:name’ p1 p2%}
注:namespace在include的第二个参数中,name在path的第三个参数中,p1 p2可以传多个参。
- csrf_token
在模板中from标签中使用{% csrf_token %}
- block (extends引入后用block)
作用:用于模板的继承 - autoescape
作用:用于转义
三、 过滤器
- 作用:在变量显示前修改它
- 语法:
{{var | 过滤器 }}
- 过滤器的方法:
- upper 把字母转化为大写
- lower 把字母转化为小写
- 过滤器可以传递参数(注:参数要用引号)
join用法
{{ list | join:‘数据间连结字符’}}
- 当变量为空或为False时可以设置默认值default
语法:
{{var | default:str}}
- 根据给定日期,日期转为字符串
{{ datavar | data:‘y-m-d’}}
其中y年m月d日
- html转义
escape - 加
{{ var | add:nu }}
- 减
{{var | add:-nu }}
- 乘、除
{% widthratio varnum num1 num2 %}
注:varnum/num1*num2
num1要除的数
num2要乘的数
- 除
{{ varnum | divisibleby:num}}
注:表示varnum除以num
四、注释
{# 单行注释内容#}
多行注释
{% commten % }
多行注释内容
{% endcomment %}