自定义filter

在app下创建一个名叫templatetags的python包 ,名字必须为templatetags

在包内创建python文件,名字随意

在文件中添加以下内容,固定写法

from django import template
register = template.Library()

自定义filter

在文件中写函数,并添加装饰器

from django import template

register = template.Library()

@register.filter()
def add_wl(value, arg):
    return ‘{}_{}_wl‘.format(value, arg)

在模板中使用,记得重启django,可以在网页中输入地址查看

{% load  my_tags%}
{{ qwe|add_wl:‘asd‘ }}
{% if ‘qwe‘|add_wl:‘q‘ == ‘qwe_q_wl‘ %}
    真
{% endif %}

自定义simple_tag

写函数(函数参数不受限制),加装饰器

@register.simple_tag
def str_join(*args, **kwargs):
    print(args)
    print(kwargs)
    return "-".join(args) + ‘*‘.join(kwargs.values())

使用

{% load my_tags %}
{% str_join ‘k1‘ ‘k2‘ ‘k3‘ k1=‘v1‘ k2=‘v2‘ %}

自定义inclusion_tag

返回一个动态的代码段

写函数加装饰器

@register.inclusion_tag(‘li.html‘)
def show_li(num):
    return {‘num‘: range(num)}

写模板(li.html)

<ul>
    {% for foo in num %}
        <li> {{ foo }}</li>
    {% endfor %}
</ul>

使用,以下会生成10个li标签

{% load my_tags %}
{% show_li 10 %}

原文地址:https://www.cnblogs.com/wanglan/p/10306682.html

时间: 2024-10-19 17:23:08

自定义filter的相关文章

Atitit.struts排除url&#160;的设计and&#160;原理&#160;自定义filter&#160;排除特定url

Atitit.struts排除url 的设计and 原理 自定义filter 排除特定url 1.1. 原理流程1 2. Invoke1 3. StrutsX2 1.1. 原理流程 读取struts配置xml文件内容 得到多个regexpress规则,匹配规则与uri <constant name="struts.action.excludePattern" value="/com.attilax/core/approot_js.jsp,.*\.jsp,/api.jsp

angular自定义filter

angular自定义filter angular除了几个自带的常用的filter,还可以自定义filter,以满足不同的需求,简单研究了一下自定义filter,记录一下. 有如下场景,后台返回的数据中,status可能是英文字符串,如果在html中使用if进行挨个判断,则显得有些啰嗦,这样我们就可以使用自定义的filter实现 javasc代码: var myapp = angular.module('demoApp', []); myapp.controller('filterControll

Asp.net mvc自定义Filter简单使用

自定义Filter的基本思路是继承基类ActionFilterAttribute,并根据实际需要重写OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted这四个中的一个或多个方法. 注意类名一定要以Attribute结尾. 故名思义,Action执行前,执行后,结果返回前,结果返回后.所以它们的执行先后顺序就是OnActionExecuting,OnActionExecuted,Action,OnResultEx

DirectX:在graph自动连线中加入自定义filter

为客户提供的视频播放的filter的测试程序中,采用正向手动连接的方式(http://blog.csdn.net/mao0514/article/details/40535791),由于不同的视频压缩格式,导致这种方式的缺点是不能及时的播放任意的视频文件.现在,采用在自动连线的graph中添加自己的filter: 过程如下: 1. 构建自动连线graph: 2. 在graph中查找render filter: 3.在renderf ilter上查找输入m_r_in_pin的上位连接m_n_out

Spring-Security 自定义Filter完成验证码校验

Spring-Security的功能主要是由一堆Filter构成过滤器链来实现,每个Filter都会完成自己的一部分工作.我今天要做的是对UsernamePasswordAuthenticationFilter进行扩展,新增一个Filter,完成对登录页面的校验码的验证.下面先给一张过滤器的说明,接下来讲自定义的登录验证Filter.  https://docs.spring.io/spring-security/site/docs/3.2.8.RELEASE/reference/htmlsin

Python学习(三十七)—— 模板语言之自定义filter和中间件

一.模板语言之自定义filter 自定义filter文件存放位置 模板中自定义函数 - 在已注册的app中创建一个名字叫 templatetags 文件夹 - 任意创建一个py文件 - 创建名字交 register 的Library类的对象 - 定义函数 from django.template import Library register = Library() # 调用示例:{{ "a1"|meikai:"n1,n2"}} # 参数最多2 # 可以做if的条件

SpringBoot自定义Filter

SpringBoot自定义Filter SpringBoot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,当然我们可以自定 义Filter. 自定义Filter需要两个步骤: 实现Filter[javax.servlet.Filter]接口,实现Filter方法 添加 @Configuration 注解,将自定义Filter加入过滤链 [过滤打印请求URL]实例代码如下: package xatu.zsl.Filter; i

springboot(八)自定义Filter

自定义Filter 我们常常在项目中会使用filters用于录调用日志.排除有XSS威胁的字符.执行权限验证等等. Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们可以自定义Filter. 两个步骤: 实现Filter接口,实现Filter方法 添加@Configurationz 注解,将自定义Filter加入过滤链 package cn.cnki.ref.filter; import org.a

Django(模板语言-自定义filter和simple_tag)

filter过滤器的主要形式:变量|函数,意思是将变量交给函数处理,而自定义filter就是自己定义函数,因为用到已有的很少. 1.在当前app中创建templatetags模块(包:带__init__.py)(必须的) 2.在templatetags中创建.py文件,如my_tags.py from django import template #因为要应用到前端模板语言,必须导入template from django.utils.safestring import mark_safe re