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

版权声明

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

sort(value, reverse=False, case_sensitive=False, attribute=None)
对迭代序列排序。默认升序,如果您设置 reverse 参数为 true ,将反转排序。

如果迭代的序列由字符串组成,则 case_sensitive 参数可用于控制比较时的大小写敏感性,默认为不区分大小写。

也可以通过指定的 attribute 参数进行排序(例如,通过对象的日期排序):

2.6版本中变更 : 增加 attribute 参数支持。

string(object)
转换为 unicode 字符串。标记字串不会被转换为 unicode 。
striptags(value)
去除 SGML/XML 标签,并使用一个空格替换相邻的空白。
sum(iterable, attribute=None, start=0)
返回数字序列的和加上 ‘start’ 参数的值(默认为0)。当序列为空时,返回 start 参数值。

也可以仅对某个属性求和:

2.6版本中变更 : 增加 attribute 参数支持,从而允许通过属性求和。并将 start 参数右移。

title(s)
返回一个值的标题版本。也就是说,单词将首字母大写,其余小写。
tojson(value, indent=None)
输出一个结构为 JSON 以便于在 <script> 标签中安全使用。它接受相同的参数并返回一个 JSON 字符串。注意,在模板中可以通过 |tojson 过滤器使用,该过滤器也同时标记结果为安全。由于此函数会转义特定字符,所以即使在 <script> 标签之外使用也是安全的。

字符串中的如下字符将被转义:

  • <
  • >
  • &
  • '

这使得可以在 HTML 中的任何地方安全的嵌入字串,除了双引号属性外。在这种情况下,使用单引号您的属性,或另外使用 HTML 转义。

indent 参数用来开启更漂亮的打印格式。您可以将它设置为需要缩进的空格数量。

注意,此过滤器仅可以在 HTML 上下文中使用。

2.9版本中引入

trim(value)
去除前后的空白。
truncate(s, length=255, killwords=False, end=’…’, leeway=None)
返回字符串的截断副本。长度通过 length 参数指定,默认为 255 。如果 killwords 参数设为 true , 过滤器将在 length 处剪切文本。否则将忽略最后一个单词。实践中,如果一个文本被截断了,那么将在其后附加一个省略符( "..." )。如果您想定制与 ... 不同的省略符,您可以通过 end 参数设置。仅仅超出 leeway 参数所设置的容忍值长度的字串将不会被截断。

在新的 Jinja2 版本中, leeway 默认值为5,曾经是0, 但是可以在全局范围内重新配置。

upper(s)
转换为大写。
urlencode(value)
将字符串转义为在 URL 中使用的编码(使用 UTF-8 编码)。它接受字典、常规字符串以及成对的 (pairwise) 可迭代序列。
2.7版本中引入
urlize(value, trim_url_limit=None, nofollow=False, target=None, rel=None)
转换纯文本 URL 为可点击的链接。

如果您向该过滤器传入了 trim_url_limit 参数,那么 url 将被缩短到这个指定的长度。另外,如果设置了 nofollow 参数, url 将被标记为 “nofollow” :

如果指定了 target 参数,那么 target 属性将被加入到 <a> 标签中:

2.8+版本中变更 : 添加 target 参数。

wordcount(s)
计算字符串中的单词数。
wordwrap(s, width=79, break_long_words=True, wrapstring=None)
返回传入到过滤器的字符串拷贝,封装为每行 79 个字符。您可以通过设置 width 参数重写默认值。如果您设置 break_long_words 为 false ,当长度大于 width 时,Jinja 将不会切分单词。默认情况下,换行符将使用环境下的默认换行符,但是您可以使用 wrapstring 关键字参数来修改。
2.7版本中引入 : 增加 wrapstring 参数支持。
xmlattr(d, autospace=True)
在字典(dict)中,创建基于条目的 SGML/XML 属性字符串。所有非 noneundefined 的值将被自动转义:

结果如下:

如你所见,该过滤器将自动在返回的条目前增加前空格,除非您将 autospace 设为 false 。

One thought on “[Flask][12]Jinja2模板设计文档——内建过滤器列表

发表评论

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