Django模版中的过滤器详细解析 Django filter大全

就象本章前面提到的一样,模板过滤器是在变量被显示前修改它的值的一个简单方法。 过滤器看起来是这样的:

{{ 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 做下面这些转换:

*  转换 & 到 &amp;
*   转换 < 到 &lt;
*   转换 > 到 &gt;
 *  转换 " (双引号) 到 &quot;
*   转换 ' (单引号) 到 &#39;

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转意,比如将"<"转换为"&lt",将">"转换为"&gt",

(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)

原文地址:https://www.cnblogs.com/xuchunlin/p/6305710.html