Django常用模板标签及过滤器
目录
- 一 模板的组成
- 二 逻辑控制代码的组成
- 变量使用双大括号来引用变量
- 标签tag的使用使用大括号和百分号组成来表示使用tag
- 过滤器filter的使用
- 三 常用标签tag
- if
- ifequal 和 ifnotequal
- for
- cycle
- 注释
- csrf_token
- debug
- filter
- autoescape
- firstof
- load
- now
- spaceless
- url
- verbatim
- with
- 四 常用过滤器filter
- add
- addslashes
- capfirst
- cut
- date
- default
- default_if_none
- dictsort
- dictsorted
- divisbleby
- escape
- escapejs
- filesizeformat
- first
- last
- floatformat
- length
- length_is
- urlencode
- upperlower
- safe
- slice
- time
- timesince
- truncatechars
- turncatewords
- striptags
- 五 文档
一 模板的组成
- HTML代码+逻辑控制代码
二 逻辑控制代码的组成
1 变量(使用双大括号来引用变量)
{{ var_name }}
2 标签(tag)的使用(使用大括号和百分号组成来表示使用tag)
{% load staticfiles %}
3 过滤器(filter)的使用
{{ ship_date|date:"Fj,Y"}}
ship_date
变量传给data过滤器,data过滤器通过使用Fj,Y
这几个参数来格式化数据。|
代表类似Unix命令中的管道操作。
三 常用标签(tag)
1 {% if %}
- 可以使用and,or,not来组织你的逻辑,但不允许and和or同时出现的条件语句中。新版本已经支持{% elif %}这样的用法
2 {% ifequal %}
和{% ifnotequal %}
- 比较是否相等,只限于简单的类型,比如字符串、整数、小数的比较,列表、字典、元组不支持。
3 {% for %}
用来循环一个list,还可以使用reserved关键字来进行倒序遍历,一般可以用if语句来西先判断一下列表是否为空,在进行遍历;还可以使用empty关键字来进行为空时候的跳转。
**for标签中可以使用forloop
forloop.counter: 当前循环计数,从1开始
forloop.counter0: 当前循环计数,从0开始
forloop.recounter: 当前循环倒数计数,从列表长度开始
forloop.recounter0: 当前循环倒数计数,从列表长度减1开始,标准
forloop.first: bool值,判断是不是循环的第一个元素
forloop.last: bool值,判断是不是循环的最后一个元素
forloop.parentloop: 用在嵌套循环中,得到parent循环的引用,然后可以使用以上参数
4 {% cycle %}
- 在循环是轮流使用给定的字符串列表中的值。
5 注释
{# #}
单行注释,{% comment %}
多行注释
6 {% csrf_token %}
- 生成csrf_token的标签,用于防止跨站攻击验证
7 {% debug %}
- 调用调试信息
8 {% filter %}
- 将filter标签标签圈定的执行过滤器操作
9 {% autoescape %}
- 自动转义设置
{{% autoescape off %}}
{{ value}}
{{% endautoescape %}}
10 {% firstof %}
- 输出第一个值不等于False的变量
11 {% load %}
- 加载标签库
12 {% now %}
- 获取当前的时间
13 {% spaceless %}
- 移除空格
14 {% url %}
- 引入路由配置的地址
15 {% verbatim %}
- 禁止render
16 {% with %}
- 用更简单的变量名缓存复制的变量名
四 常用过滤器(filter)
- 经常使用的是通过变量来调用过滤器)
1 add
- 给变量加上相应的值
{{ value|add:"2" }} # 空格不要乱加
2 addslashes
- 给变量中的引号(双引号、单引号)前加上斜线
3 capfirst
- 首字母大写
4 cut
- 从字符串中移除指定的字符
{{ value|cut:" " }}
5 date
- 格式化日期字符串
6 default
- 如果值是False,就替换成设置的默认值,否则就使用本来的值(空字符串”“、空列表[]、空字典{}、空元组()、None在python里也是False)
7 default_if_none
- 如果只是None,就替换成设置的默认值,否则就使用本来的值
8 dictsort
- 按照设定的参数(key)对应的value对列表进行排序
9 dictsorted
- 和上面恰好相反
10 divisbleby
- 是否能够被某个数字整除,是的话返回True,否则返回False
11 escape
- 对字符串进行转义。django默认自动转义,如果我们关闭了自动转义,这可使用escape过滤器来转义。
12 escapejs
- 替换value中的某些字符,以适应JAVASCRIPT和JSON格式
13 filesizeformat
- 格式化文件大小显示
14 first
- 返回列表中的第一个值
15 last
- 返回列表中的最后一个值
16 floatformat
- 格式化浮点数
17 length
- 求字符串或者列表的长度
18 length_is
- 比较字符串或者列表的长度
19 urlencode
- 对URL进行编码处理
20 upper\lower
- 大写\小写
21 safe
- 对某个变量关闭自动转义
{{ value|safe }}
22 slice
- 切片操作
{{ some_list|slice:":2" }}
23 time
- 格式化时间
24 timesince
- 格式化时间(e.g. “4 days,6 hours”)
25 truncatechars
- 按照字符截取字符串
{{ value|truncatechars:5 }}
26 turncatewords
- 按照单词截取字符串(其实就是按照空格来截取)
27 striptags
- 过滤掉html标签
五 文档
官方文档https://docs.djangoproject.com/en/2.0/ref/templates/builtins/