码迷,mamicode.com
首页 > 其他好文 > 详细

11_自定义flask_jinja2模板过滤器

时间:2019-10-07 19:32:31      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:个数   自动   config   ble   style   pre   就是   app   变量   

自定义过滤器

自定义的过滤器如果和内置的过滤器重名,会覆盖内置的过滤器

过滤器本质上就是一个函数。如果在模板中调用这个过滤器。那么就会将这个变量的值作为第一个参数传递给过滤器这个函数,然后函数的返回值会作为这个过滤器的返回值。

1. 通过add_template_filter(过滤器函数名, 模板中使用的过滤器名字)

...
def filter_double_sort(li):
    """自定义的过滤器函数"""
    return li[::2]    # 如将列表第隔两步取一个数
app.add_template_filter(filter_double_sort, 'li2')
...

2. 通过装饰器: @app.template_filter(‘过滤器名称‘)

app.config['TEMPLATES_AUTO_RELOAD'] = True   # 可以设置这个, 模板修改了,也自动加载

@app.template_filter('li3')
def filter_double_sort(li):
    """每隔三步取一个值"""
    return li[::3]

@app.template_filter('cut')
def cut(value):
    """替换字符串中hello为空"""
    value = value.replace('hello', '')
    return value


# 在模板中使用
<p>cut 替换掉里面的hello:{{ 'hello world hello world replace hello replace value world'|cut }}</p>
# 结果为:
cut 替换掉里面的hello:world world replace replace value world

11_自定义flask_jinja2模板过滤器

标签:个数   自动   config   ble   style   pre   就是   app   变量   

原文地址:https://www.cnblogs.com/nichengshishaonian/p/11631713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!