DTL过滤器
过滤器目录
add过滤器
cut过滤器
date过滤器
default过滤器, default_if_none过滤器
first,last
floatformat
join
lenght
lower,upper random
safe
slice
striptags
truncatechars
truncatechars_html
在模板中,有时候需要对一些数据进行处理以后才能使用
一般在python中我们通过函数的形式来完成的
而在模板中,则是通过过滤器来实现的
过滤使用"|"来使用. 比如使用add过滤器: 格式:{{ value|add:"2"}}
过滤器其实就是一个函数,可以对需要处理的参数进行处理,
并且还可以额外接收一个参数(也就是说,最多只能有2个参数)
add过滤器
格式: {{ 参数1|add:参数2 }}
源代码
根据源代码:
如果两个参数都是int类型,会相加
如果是列表,字符串等其他类型会拼接
如果是其他.返回一个空的字符串
@register.filter(is_safe=False)
def add(value, arg):
"""Add the arg to the value."""
try:
return int(value) + int(arg)
except (ValueError, TypeError):
try:
return value + arg
except Exception:
return ''
cut过滤器
移除值中所有指定的字符串,类似于python中的replace(args,"")
格式: {{ 传递过去的数据|cut "剪切的字符串" }} # 后面数据必须是字符串
date过滤器–过滤时间
data过滤器要结合 "datetime模块 " 使用
{{ 参数| date:"格式字符" }}
default, default_if_none
default 默认值
如果值被评估为false,
比如: [] {} "" None等,在if判断为false的值
都可以使用default过滤器提供默认值
default_if_none 默认为none
default_if_none和default的区别:
只有值等于none时,才会使用默认值
default是值为false就会使用
如果值等于None,才会触发default_if_none
first, last过滤器(不能传参)
first过滤器
返回列表/元组/字符串的第一个元素
{{ 值|first }}
last过滤器
返回列表/元组/字符串的最后一个元素
{{ 值|last }}
floatformat
使用四舍五入的方式格式化一个浮点类型
如果这个过滤器没有传递任何参数
那么只会在小数点后保留一个小数
如果小数后面全是0,那么只会保留整数
根据传递参数,决定!
join
类似于python于的join,将列表/元组/字符串用指定的字符进行拼接
{{ value|join:"字符" }}
lenght
获取一个数据类型的长度
{{ value|lenght }}
lower upper
lower
将值中所有的字符全部转换成小写
{{ value|lower }}
upper
将值中所有字符转换成大写
{{ value|upper }}
random
在列表,字符串,元组中随机选择一个值
{{ value|random }}
safe
标记一个字符串是安全的,关掉这个字符串的自动转义
{{ value|safe }}
slice
类似于python中的切片操作
{{ value_list|slice:"::"}}
striptags
删除字符串中所有的html标签
{{ value|striptags }}
truncatechars
如果给定的字符串长度超过了过滤器指定的长度
那么就会切割,并且会拼接三个点来作为省略号
{{ value|truncatechars:5 }}
比如: 北京欢迎你 使用后 北京...
truncatechars_html
类似于truncatechars,只不过不会切割html标签
{{ value|truncatechars_html:5 }}
# html标签不会受影响