美文网首页
flask模板过滤器及自定义过滤器的使用

flask模板过滤器及自定义过滤器的使用

作者: 忘了呼吸的那只猫 | 来源:发表于2018-12-13 10:57 被阅读14次

flask自带的过滤器

字符串操作
禁用转义: {{ '<em>hello</em>' | safe }}
删除标签: {{ '<em>hello</em>' | striptags }}
首字母大写: {{ 'hello' | capitalize }}
所有值小写: {{ 'HELLO' | lower }}
首字母大写: {{ 'hello world' | title }}
字符串反转: {{ 'hello' | reverse }}
字符串截断: {{ 'hello world' | truncate(5) }}

列表操作
获取列表长度: {{ [1,2,3,4,5,6] | length }}
列表求和: {{ [1,2,3,4,5,6] | sum }}
列表排序: {{ [6,2,3,1,5,4] | sort }}

自定义过滤器

方式一:

通过Flask应用对象的add_template_filter方法

def list_reverse(li):
    temp = list(li)
    temp.reverse()
    return temp

# 可以给过滤器器一个名字,如果没有,默认就是函数的名字
app.add_template_filter(list_reverse,'li_reverse')
方式二:

通过装饰器来实现自定义过滤器

# 使用装饰器事项过滤器,
# 如果不传入参数,默认过滤器名字就是函数的名字    
@app.template_filter()
def my_filter(args):
    temp = list(args)
    temp.reverse()
    return temp
在html模板中调用过滤器:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jinjia2模板测试</title>
</head>
<body>
    <h1>len: {{ [1,2,3,4,5,6] | length }}</h1>   #此处调用上文flask自带的过滤器
    <h1> {{ [1,2,3,4,5,6] | my_filter }}</h1>   #此处调用上文自定义过滤器
  
</body>
</html>

相关文章

网友评论

      本文标题:flask模板过滤器及自定义过滤器的使用

      本文链接:https://www.haomeiwen.com/subject/ihkshqtx.html