<学习笔记>从零开始自学Python-之-web应用框架Django(五)Django过滤器

模板过滤器是在显示变量之前调整变量值的简单方式。过滤器使用管道符号(|)指定,

例如:

{ { name|lower }}

上述代码先通过 lower 过滤器调整 { { name }} 变量的值——把文本转换成小写,然后再显示。

过滤器可以串 接,即把一个过滤器的输出传给下一个过滤器。

下述示例获取列表中的第一个元素,然后将其转换成大写:

{ { my_list|first|upper }}

有些过滤器可以接受参数。过滤器的参数放在冒号之后,始终放在双引号内。

例如:

{ { bio|truncatewords:"30" }}

上述示例显示 bio 变量的前 30 个词。

Django内置了很多过滤器:

1、add

把参数加到值上。

例如: { { value|add:"2" }}

如果 value 为 4,输出 6。

2、addslashes

在引号前加上斜线。

可用于转义 CSV 中的字符串。

例如: { { value|addslashes }} 如果 value 为 "I'm using Django",输出 "I\'m using Django"。

3、 capfirst

把值的首字母变成大写。

如果第一个字符不是字母,这个过滤器没有效果。

4、 center

在指定宽度中居中显示值。

例如: "{ { value|center:"14" }}" 如果 value 为 "Django",输出 "␣␣␣␣Django␣␣␣␣"(␣ 表示一个空格)。

5、cut

从字符串中删除参数指定的值。

6、 date

使用指定的格式格式化日期。格式与 PHP 的 date() 函数类似,不过有些区别。

例如: { { value|date:"D d M Y" }}

如果 value 是一个 datetime 对象(例如 datetime.datetime.now() 的结果),输出的字符串类似于 "Fri 01 Jul 2016"。

也可以传入预定义的格式 DATE_FORMAT、DATETIME_FORMAT、SHORT_DATE_FORMAT 或 SHORT_DATETIME_FORMAT,以及使用日期格式说明符自定义的格式。

7、default

如果 value 是假值,使用指定的默认值;否则,使用 value 的值。

例如: { { value|default:"nothing" }}

8、default_if_none

当且仅当 value 为 None 时使用指定的默认值,否则使用 value 的值。

9、 dictsort

按参数指定的键排序字典构成的列表,返回排序后的列表。

例如: { { value|dictsort:"name" }}

10、dictsortreversed

按参数指定的键排序字典构成的列表,返回反向排序后的列表。

11、divisibleby

如果值能被参数整除,返回 True。

例如: { { value|divisibleby:"3" }} 如果 value 为 21,返回 True。

12、escape

转义字符串中的 HTML。具体而言,是做下述替换:

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

输出字符串时才做转义,因此在一串过滤器中 escape 放在什么位置没关系,它始终作为最后一个过滤器应用。

13、 first

返回列表中的第一个元素。

14、floatformat

不指定参数时,近似浮点数,只保留一位小数(前提是有小数)。如果指定了整数参数,floatformat 近似时 保留相应位数的小数。

如果 value 为 34.23234,{ { value|floatformat:3 }} 输出 34.232。

15、get_digit

从一个数字中取回指定的那一位,1 表示最低位。

16、iriencode

把 IRI(Internationalized Resource Identifier,国际化资源标识符)转换成适合在 URL 中使用的字符串。

17、 join

使用字符串连接列表,类似于 Python 的 str.join(list)。

18、 last

返回列表中的最后一个元素。

19、 length

返回值的长度。字符串和列表都适用。

20、length_is

如果值的长度与参数相等,返回 True,否则返回 False。

例如: { { value|length_is:"4" }}

21、 linebreaks

把纯文本中的换行替换成适当的 HTML 标签。一个换行符替换成一个 HTML
标签,换行之后还有新 行则替换成段落结束标签()。

22、 linebreaksbr

把纯文本中的所有换行都替换成 HTML标签。

23、 linenumbers

显示带有行号的文本。

24、ljust

在指定宽度中左对齐值。

例如: { { value|ljust:"10" }} 如果 value 为 "Django",输出 "Django␣␣␣␣"(␣ 表示一个空格)。

25、 lower

把字符串转换成全小写形式。

26、 make_list

把值转换成列表。值为字符串时,返回各字母构成的列表。

值为整数时,先把参数转换成 Unicode 字符串, 然后再创建列表。

27、 phone2numeric

把电话号码(可能包含字母)转换成等效的数值。输入无需是有效的电话号码,任何字符串都能转换。

例 如: { { value|phone2numeric }} 如果 value 为 800-COLLECT,输出 800-2655328。

28、 pluralize

值不为 1 时返回复数后缀。默认后缀为 "s"。 单词复数变形较为复杂时,可以指定单数和复数后缀,以逗号分开。

例如: You have { { num_cherries }} cherr{ { num_cherries|pluralize:"y,ies" }}.

29、 random

返回指定列表中的一个随机元素。

30、 rjust

在指定宽度中右对齐值。

例如: { { value|rjust:"10" }} 如果 value 为 "Django",输出 "␣␣␣␣Django"(␣ 表示一个空格)。

31、slice

返回列表的切片。

句法与 Python 的列表切片一样。

32、slugify

转换成 ASCII。

把空格转换成连字符。把字母、数字、下划线和连字符之外的字符删除。转换成小写。去掉 首尾的空白。

33、stringformat

根据参数指定的格式说明符格式化变量。

说明符使用 Python 字符串格式化句法,但是不用前导 %。

34、 striptags

尽全力去除 (X)HTML 标签。

例如: { { value|striptags }}

35、 time

使用指定格式格式化时间。与 date 过滤器一样,可以是预定义的 TIME_FORMAT,也可以是自定义的格式。

36、 timesince

把日期格式化为距某一刻的时间(如“4 days, 6 hours”)。

有个可选的参数,指定比较的日期基点(如不指定,与 now 比较)。

37、 timeuntil

距指定日期或日期时间的跨度。

38、title

把字符串转换成标题格式,即单词首字母大写,其余字母小写。

39、truncatechars

字符串的字符串超过指定长度时截断。

截断后的字符串以可翻译的省略号(…)结尾。

例如: { { value|truncatechars:9 }}

40、 truncatechars_html

与 truncatechars 类似,不过知道如何截断 HTML 标签。

41、 truncatewords

在指定的单词个数后截断字符串。

42、 truncatewords_html

与 truncatewords 类似,不过知道如何截断 HTML 标签。

43、 unordered_list

递归遍历嵌套的列表,返回一个 HTML 无序列表(不含起始和结束标签)。

44、 upper

把字符串转换成全大写字母形式。

45、 urlencode

转义,以便在 URL 中使用。

46、 urlize

把文本中的 URL 和电子邮件地址转换成可点击的链接。支持以 http://、https:// 或 www. 开头的 URL。

47、urlizetrunc

与 urlize 一样,把 URL 和电子邮件地址转换成可点击的链接,但是在指定的字符长度处截断 URL。例如:

{ { value|urlizetrunc:15 }}

如果 value 为 "Check out www.djangoproject.com",输出

"Check out <a href="http://www.djangoproject.com" rel="nofollow">www.djangopr…</a>"。

与 urlize 一样,这个过滤器只应该应用于纯文本。

48、wordcount

返回字数。

49、 wordwrap

在指定的长度处换行。

50、 yesno

把 True、False 和 None(可选)映射到字符串“yes”、“no”、“maybe”上,或者是通过参数传入的列表上(以 逗号分隔),根据真假值情况,返回相应的字符串。

例如: { { value|yesno:"yeah,no,maybe" }}

51、static

为了链接保存在 STATIC_ROOT 中的静态文件,Django 提供了 static 模板标签。不管用不用 RequestContext, 都可以使用这个标签。

{% load static %}
<img src="{% static "images/tu.jpg" %}" alt="nopic" />

此外,还可以使用上下文变量。假如向模板传入了 user_stylesheet 变量:

{% load static %}
<link rel="stylesheet" href="{% static user_stylesheet %}" type="text/css" media="screen" />

如果只想获取静态文件的 URL,而不显示,可以使用稍微不同的调用方式:

{% load static %}
{% static "images/tu.jpg" as mypic %}
<img src="{
   
   { mypic }}"></img>

猜你喜欢

转载自blog.csdn.net/qq_41597915/article/details/126322972