Django-自定义过滤器

1.可以通过过滤器来修改变量的显示,过滤器的形式是:{{ variable | filter }},管道符号’|’代表使用过滤器
2.过滤器能够采用链式的方式使用,例如:{{ text | escape | linebreaks }}
3.过滤器还可以带参数,例如: {{ bio|truncatewords:30 }}
4.过滤器的参数中如果带有空格,那么需要用引号引起来,例如:{{ list | join : “, “}} django中有30多个内置过滤器 比如add,cut,date等。

比如定义一个replace 的标签,其作用是将字符串按照参数替换
首先在你要加载这个tag的app中新建一个python Package,创建一个foll_filter .py

from  django import template
from  django.template.defaultfilters import stringfilter
from  django.utils.safestring import mark_safe
register = template.Library()

@register.filter()# 2 注册 @register.filter(name=cut_filter )
def  cut_filter(value, arg): # 3 注册 直接使用函数 cut_filter
    return value.replace(arg, '')

#register.filter(name="cut_filter", filter_func=cut_filter) # 1 注册 register.filter

@register.filter()
@stringfilter  # 强制转换为字符串
def  lower(value):
    return value.lower()
@register.filter(is_safe=True) # 1 设置转义 is_safe=True
def  add(value, arg):
    return mark_safe("%s %s" %(value, arg)) # 2 设置转义 mark_safe

然后在html中加载:

{% load poll_filter %}
{{ "all en" |cut_filter:" " }}

{% with "<h1>hello</h1>" as tmpValue%}
    <p>{{ tmpValue|add:"world" }}</p>
{% endwith %}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值