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>