django-模板语言-DTL常用的过滤器

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标签不会受影响
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值