• 11_自定义flask_jinja2模板过滤器


    自定义过滤器

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

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

    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
    
    
  • 相关阅读:
    CalcIntegerLength
    ReadIniTest_GetPrivateProfileString
    map test
    逻辑判断
    AppDomain.Unload_MarshalByRefObject
    网络编程
    pymysql
    MySQL多表查询
    MySQL单表查询
    python3 中引用 HTMLTestRunner.py 模块的注意事项
  • 原文地址:https://www.cnblogs.com/nichengshishaonian/p/11631713.html
Copyright © 2020-2023  润新知