就象本章前面提到的一样,模板过滤器是在变量被显示前修改它的值的一个简单方法。 过滤器看起来是这样的:
{ { name|lower }}
显示的内容是变量 {
{ name }} 被过滤器 lower 处理后的结果,它功能是转换文本为小写。 使用 | 来应用过滤器。过滤器可以被 串联 ,就是说一个过滤器的输出可以被输入到下一个过滤器。这里有一个常用的 需求,先转义文本到HTML,再转换每行到 <p> 标签:
{ { my_text|escape|linebreaks }}
有些过滤器有参数。过滤器参数看起来是这样的:
{ { bio|truncatewords:"30" }}
这个将显示变量 bio 的前30个词。过滤器参数总是使用双引号标识。
下面是一些最重要的过滤器;附录F有完整的过滤器列表。
addslashes : 添加反斜杠到任何反斜杠、单引号或者双引号前面。 这在处理包含JavaScript的文本时是非常有用的。
date : 按指定的格式字符串参数格式化 date 或者 datetime 对象, 范例:
{ { pub_date|date:"F j, Y" }}
格式参数的定义在附录F中。
escape : 转义 &符号,引号,<,> 符号。 这在确保用户提交的数据是有效的XML或XHTML时是非常有用的。 具体上, escape 做下面这些转换:
* 转换 & 到 &
* 转换 < 到 <* 转换 > 到 > * 转换 " (双引号) 到 "* 转换 ' (单引号) 到 'length : 返回变量的长度。你可以对列表或者字符串,或者任何知道怎么测定长度的Python 对象使用这个方法(也就是说,有 __len__() 方法的对象)。
(1)Add:给value加上一个数值,比如{
{123@add:"5"}}返回128.(2)addslahes:单引号加上转义字符。
(3)capfirst:第一个字符大写,比如{
{"good"|capfirst}} 返回Good。(4)center:输出指定长度的字符串,把变量居中,比如{
{"abcd"|center:"50"}}(5)cut:删除指定字符串。比如{
{"You are not a Englishman"|cut:"not"}}.(6)date:格式化日期
(7)default:如果值不存在,则使用默认值代替,比如{
{value|default:"(N/A)"}}。(8)default_if_none:如果值为None,则使用默认值代替,使用方式与default类似。
(9)dictsort:按某字段排序,变量必须是一个dictionary。
{%for moment in moments|dictsort:"id"%} *{ {moment.headline}}{ {}%endfor%}
如上代码指定moments用id字段排序后逐个进行headline输出。
(10)dictsortreversed:按某字段倒叙排序。变量必须是一个dictionary。
(11)divisibleby: 判断是否可以被某数字整除。
(12)escape:按HTML转意,比如将"<"转换为"<",将">"转换为">",
(13)filesizeformat:增加数字的可读性,转换结果为13KB,89MB,3Bytes。
(14)First:返回列表的第一个元素,变量必须是列表,比如{
{['Eenlish','Chinese',Japanses]|first}}(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)