[Flask][11]Jinja2模板设计文档——内建过滤器列表

版权声明

本文出自 “ 幻冥极地 ” 博客 ,作者 小貘 采用 署名-非商业性使用-相同方式共享 协议。转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
https://www.moorehy.com/archives/261

join(value, d=u”, attribute=None)
返回一个字符串,它是序列中字符串的拼接。默认情况下,元素间的分隔符为空字串,您可以通过可选参数定义它:

也可以连接对象中的某一属性:

2.6版本中引入 : 加入 attribute 参数

last(seq)
返回序列中的最后一个条目
length(object)
返回一个序列或映射的条目数
别名 : count
list(value)
转为列表。如果传入参数为一个字符串,将返回一个字符列表。
lower(s)
转为小写。
map()
在对象序列上应用过滤器或查找属性。这在处理对象列表时非常有用,如果您真的只对它的某个值感兴趣。

基本用法是对属性进行映射。假设您有一个用户列表,但您只对用户名列表感兴趣:

或者,您可以通过传递其他过滤器的名称和参数来调用 map 过滤器。以下是一个很好的例子,它在一个序列上应用文本转换过滤器:

2.7版本中引入

pprint(value, verbose=False)
漂亮的打印一个变量。用于调试。
使用 Jinja 1.2 以上,您可以向它传递一个参数。如果 verbose 参数为 true ,将打印更多的输出(这需要 pretty )
random(seq)
从序列返回一个随机条目
reject()
通过对每个对象应用测试来过滤对象序列,拒绝测试成功的对象。
如果没有指定测试,每个对象将被计算为布尔值。
用法示例:

2.7版本中引入

rejectattr()
通过对每个对象指定属性应用测试来过滤对象序列,拒绝测试通过的对象。
如果没有指定测试,属性值将被计算为布尔值。

2.7版本中引入

replace(s, old, new, count=None)
返回一个字串拷贝,将其中遇到的全部 old 子串替换为 new 。 old 参数为需要被替换的子串, new 参数是用来替换的字串。如果提供了可选参数 count ,那么仅仅替换遇到的前 count 个子串:

reverse(value)
反转对象,或返回一个迭代器的逆序。
round(value, precision=0, method=’common’)
将数字取约到给定的精度。 precision 参数用于指定精度(默认是 ), method 为约数方法:
  • ‘common’ 四舍五入
  • ‘ceil’ 总是入
  • ‘floor’ 总是舍

如果您未指定方法,默认使用 'common'

注意,即使取约到精度0,仍然会返回一个浮点数。如果您需要一个真正的整数而非浮点数,可以通过输送到 int 过滤器实现:

safe(value)
标记为安全,这意味着在一个开启自动转义的环境下将不会被转义。
select()
通过对每个对象应用测试来过滤一个对象序列,并且仅仅选择通过测试的对象。
如果不指定测试,每个对象将被计算为布尔值。
用法示例:

2.7版本中引入

selectattr()
通过对每个对象的指定属性应用测试来过滤一个对象序列,并且仅仅选择通过测试的对象。
如果不指定测试,属性值将被计算为布尔值。
用法示例:

2.7版本中引入

slice(value, slices, fill_with=None)
切割一个迭代器,并且返回包含其中条目的列表序列。如果您想创建一个包含三个作为列显示用的 ul 标签的 div 时,这将非常有用:

如果您传入一个 fill_with 参数,将被用于在迭代最后填充缺少的值。

发表评论

电子邮件地址不会被公开。 必填项已用*标注