摘要
- 仅展示常用的
- 包括字符串过滤器、列表过滤器、自定义过滤器
字符串过滤器
safe:禁用转义;
<p>{{ '<em>hello</em>' | safe }}</p>
capitalize:把变量值的首字母转成大写,其余字母转小写;
<p>{{ 'hello' | capitalize }}</p>
lower:把值转成小写;
<p>{{ 'HELLO' | lower }}</p>
upper:把值转成大写;
<p>{{ 'hello' | upper }}</p>
title:把值中的每个单词的首字母都转成大写;
<p>{{ 'hello' | title }}</p>
trim:把值的首尾空格去掉;
<p>{{ ' hello world ' | trim }}</p>
reverse:字符串反转;
<p>{{ 'olleh' | reverse }}</p>
format:格式化输出;
<p>{{ '%s is %d' | format('name',17) }}</p>
striptags:渲染之前把值中所有的HTML标签都删掉;
<p>{{ '<em>hello</em>' | striptags }}</p>
列表过滤器
first:取第一个元素
<p>{{ [1,2,3,4,5,6] | first }}</p>
last:取最后一个元素
<p>{{ [1,2,3,4,5,6] | last }}</p>
length:获取列表长度
<p>{{ [1,2,3,4,5,6] | length }}</p>
sum:列表求和
<p>{{ [1,2,3,4,5,6] | sum }}</p>
sort:列表排序
<p>{{ [6,2,3,1,5,4] | sort }}</p>
自定义过滤器
code1:通过 add_template_filter (过滤器函数, 模板中使用的过滤器名字)
def filter_double_sort(lst):
return lst[::2]
app.add_template_filter(filter_double_sort,'db2')
code2:通过装饰器 app.template_filter (模板中使用的装饰器名字)
@app.template_filter('db3')
def filter_double_sort(lst):
return lst[::-3]
补充
- flask过滤器也支持链式操作。如:<p>{{ “ hello world “ | trim | upper }}</p>
- 与django不同的是,flask的过滤器在自定义上面非常的方便。