当前位置: 代码迷 >> 综合 >> flask jinja2 自定义过滤器
  详细解决方案

flask jinja2 自定义过滤器

热度:53   发布时间:2023-10-17 22:12:12.0

过滤器的本质是函数。当模板内置的过滤器不能满足需求,可以自定义过滤器。自定义过滤器有两种实现方式:

一种是通过Flask应用对象的 add_template_filter 方法
通过装饰器来实现自定义过滤器
注意:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器!!!

 

方式一
通过调用应用程序实例的 add_template_filter 方法实现自定义过滤器。该方法第一个参数是函数名,第二个参数是自定义的过滤器名称:

def do_listreverse(li):
    # 通过原列表创建一个新列表
    temp_li = list(li)
    # 将新列表进行返转
    temp_li.reverse()
    return temp_li
 
app.add_template_filter(do_listreverse,'lireverse')
方式二

用装饰器来实现自定义过滤器。装饰器传入的参数是自定义的过滤器名称。

@app.template_filter('lireverse')
def do_listreverse(li):
    # 通过原列表创建一个新列表
    temp_li = list(li)
    # 将新列表进行返转
    temp_li.reverse()
    return temp_li
在 html 中使用该自定义过滤器
<br/> my_array 原内容:{ { my_array }}
<br/> my_array 反转:{ { my_array | lireverse }}
运行结果
my_array 原内容:[3, 4, 2, 1, 7, 9] 
my_array 反转:[9, 7, 1, 2, 4, 3]
--------------------- 
作者:终于还是了 
来源:CSDN 
原文:https://blog.csdn.net/weixin_42264573/article/details/81563203 
版权声明:本文为博主原创文章,转载请附上博文链接!