首页 > 其他 > 详细

032:DTL常用过滤器(1)

时间:2019-12-24 14:34:26      阅读:89      评论:0      收藏:0      [点我收藏+]

为什么需要过滤器:

在DTL中,不支持函数的调用形式‘()’,因此不能给函数传递参数,这将有很大的局限性;而过滤器其实就是一个函数,可以对需要处理的参数进行处理,并且还可以额外接受一个参数(也就是说:最多两个参数);

 

add过滤器:

将传进来的参数添加到原来的值上面。这个过滤器会尝试将 值 和 参数 转换成整形然后进行相加。如果转换成整形过程中失败了,那么会将 值 和 参数 进行拼接。如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表。示例代码如下:

{{ value|add:"2" }}

如果 value 是等于4,那么结果将是6。如果 value 是等于一个普通的字符串,比如 abc ,那么
结果将是 abc2 。 add 过滤器的源代码如下:

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 ‘‘

示例如下:

urls.py:

技术分享图片

views.py:

技术分享图片

my_add.html:

技术分享图片

 

   cut过滤器:

 cut过滤器:移除值中所有指定的字符串。类似于 python 中的 replace(args,"") 。示例代码如下:{{ value|cut:" " }}

以上示例将会移除 value 中所有的空格字符。 cut 过滤器的源代码如下:

def cut(value, arg):
    """Remove all values of arg from the given string."""
    safe = isinstance(value, SafeData)
    value = value.replace(arg, ‘‘)
    if safe and arg != ;:
        return mark_safe(value)
    return value

技术分享图片

032:DTL常用过滤器(1)

原文:https://www.cnblogs.com/Carlos-Li/p/12091309.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!