Flask常用过滤器及自定义过滤器

摘要

  • 仅展示常用的
  • 包括字符串过滤器、列表过滤器、自定义过滤器

字符串过滤器

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的过滤器在自定义上面非常的方便。
发布了55 篇原创文章 · 获赞 3 · 访问量 2747

猜你喜欢

转载自blog.csdn.net/rusi__/article/details/102805022