Django模板语言,过滤器整理

1. add

{{ value|add:"2" }}

把add后的参数加给value;

处理时,过滤器首先会强制把两个值转换成Int类型。 如果强制转换失败, 它会试图使用各种方式吧两个值相加。

实例:

{{ arg|add:val }}

1)arg是5,val是3,将会输出8

2)arg是5,val是'3',将会输出8

3)arg是'jason',val是'2',将会输出jason2

4)arg是'jason',val是2,将会输出空

5)arg是[1, 2, 3],val是[4],将会输出[1, 2, 3, 4]

2. addslashes

{{ value|addslashes }}

在引号前面加上斜杆

像这样:

如果value 是 "I'm using Django", 输出将变成 "I\'m using Django"

3. capfirst

{{ value|capfirst}}

将变量的第一个字母变成大写,如果第一个字符不是字母,则过滤器不生效

如果 "value" 是 "django", 输出将变成 Django

4. center

{{ value|center:16}}

使"value"在给定的宽度范围内居中。

5. cut

移除value中所有的与给出的变量相同的字符串

{{ value|cut:" "}}

如果value“String with spaces”,输出将为"Stringwithspaces"

6. date

根据给定格式对一个date变量格式化

可用的格式字符串:

格式化字符 描述 示例输出
a 'a.m.''p.m.'(请注意,这与PHP的输出略有不同,因为这包括符合Associated Press风格的期间) 'a.m.'
A 'AM''PM' 'AM'
b 月,文字,3个字母,小写。 'jan'
B 未实现。
c ISO 8601格式。 (注意:与其他格式化程序不同,例如“Z”,“O”或“r”,如果值为naive datetime,则“c”格式化程序不会添加时区偏移量(请参阅datetime.tzinfo) 。 2008-01-02T10:30:00.000123+02:002008-01-02T10:30:00.000123如果datetime是天真的
d 月的日子,带前导零的2位数字。 '01''31'
D 一周中的文字,3个字母。 “星期五”
e 时区名称 可能是任何格式,或者可能返回一个空字符串,具体取决于datetime。 '''GMT''-500''US/Eastern'
E 月份,特定地区的替代表示通常用于长日期表示。 'listopada'(对于波兰语区域,而不是'Listopad'
f 时间,在12小时的小时和分钟内,如果它们为零,则分钟停留。 专有扩展。 '1''1:30'
F 月,文,长。 '一月'
g 小时,12小时格式,无前导零。 '1''12'
G 小时,24小时格式,无前导零。 '0''23'
h 小时,12小时格式。 '01''12'
H 小时,24小时格式。 '00''23'
i 分钟。 '00''59'
I 夏令时间,无论是否生效。 '1''0'
j 没有前导零的月份的日子。 '1''31'
l 星期几,文字长。 '星期五'
L 布尔值是否是一个闰年。 TrueFalse
m 月,2位数字带前导零。 '01''12'
M 月,文字,3个字母。 “扬”
n 月无前导零。 '1''12'
N 美联社风格的月份缩写。 专有扩展。 'Jan.''Feb.''March''May'
o ISO-8601周编号,对应于使用闰年的ISO-8601周数(W)。 对于更常见的年份格式,请参见Y。 '1999年'
O 与格林威治时间的差异在几小时内。 '+0200'
P 时间为12小时,分钟和'a.m。'/'p.m。',如果为零,分钟停留,特殊情况下的字符串“午夜”和“中午”。 专有扩展。 '1 am''1:30 pm' / t3>,'midnight','noon','12:30 pm' / T10>
r RFC 5322格式化日期。 'Thu, 21 Dec 2000 16:01:07 +0200'
s 秒,带前导零的2位数字。 '00''59'
S 一个月的英文序数后缀,2个字符。 'st''nd''rd''th'
t 给定月份的天数。 28 to 31
T 本机的时区。 'EST''MDT'
u 微秒。 000000 to 999999
U 自Unix Epoch以来的二分之一(1970年1月1日00:00:00 UTC)。
w 星期几,数字无前导零。 '0'(星期日)至'6'(星期六)
W ISO-8601周数,周数从星期一开始。 153
y 年份,2位数字。 '99'
Y 年,4位数。 '1999年'
z 一年中的日子 0365
Z 时区偏移量,单位为秒。 UTC以西时区的偏移量总是为负数,对于UTC以东时,它们总是为正。 -4320043200

实例:

now = datetime.datetime.now()

1){{ now|date:'Y-m-d H:i:s'}}

输出类似:2018-10-09 11:15:22

2){{ now|date }}

输出类似:Oct. 9, 2018

传递的格式可以是预定义的格式DATE_FORMATDATETIME_FORMATSHORT_DATE_FORMATSHORT_DATETIME_FORMAT

3){{ now|date:"DATETIME_FORMAT" }}

输出类似:Oct. 9, 2018, 11:19 a.m.

7. default

如果value的计算结果为False,则使用给定的默认值。 否则,使用该value。

{{ value|default:"nothing" }}

8. default_if_none

{{ value|default_if_none:"nothing"}}

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

注意,如果给出一个空字符串,默认值将被使用。

9. dictsort

{{ value|dictsort:"name" }}

接受一个字典列表,并返回按参数中给出的键排序后的列表。

实例:

Value = [ {'name': 'zed', 'age': 19}, {'name': 'amy', 'age': 22}, {'name': 'joe', 'age': 31}, ]

{{ Value|dictsort:'name' }} {{ Value|dictsort:'age' }}

输出:

[{'name': 'amy', 'age': 22}, {'name': 'joe', 'age': 31}, {'name': 'zed', 'age': 19}]

[{'name': 'zed', 'age': 19}, {'name': 'amy', 'age': 22}, {'name': 'joe', 'age': 31}]

10. dictsortreversed

获取字典列表,并返回按照参数中给出的键按相反顺序排序的列表。 这与上面的过滤器完全相同,但返回的值将是相反的顺序。

11. divisibleby

{{ value|divisibleby:“2” }}

如果value可以被给出的参数整除,则返回 True

实例:

value = 12

{{ value|divisibleby:“2” }}

输出:True

12. filesizeformat

格式化为“可读”文件大小(即'13 KB't4> MB''102 bytes'等)。

{{ value|filesizeformat }}

实例:

value = 1234567890

{{ value|filesizeformat }}

输出:1.1 GB

13. first

{{ value|first }}

返回序列中的第一项(字符串、列表、元组等)

如果value是列表['a', 'b', 'c'],输出将为'a'

14. floatformat

当不使用参数时,将浮点数舍入到小数点后一位;使用参数时,保留参数指定的位数

实例:

pi = 3.1415926

{{ pi|floatformat }}

{{ pi|floatformat:0 }}

{{ pi|floatformat:2 }}

输出:

3.1 3 3.14

15. get_digit

给定一个整数,返回所请求的数字,其中1是最右边的数字,2是第二个最右边的数字等。 返回无效输入的原始值(如果输入或参数不是整数,或参数小于1)。否则,输出总是一个整数。

实例:

{{ value|get_digit:"2" }}

如果value123456789,则输出将为8

16. join

使用字符串连接列表,例如Python的str.join(list)

{{ value|join:" // " }}

如果value是列表['a', 'b', 'c'],输出将为“a // b // C“。

17. last

返回列表中的最后一个项目

{{ value|last }}

如果value是列表['a', 'b', 'c'],输出将为'c'

18. length

返回值的长度

{{ value|length }}

如果value['a', 'b', 'c', 'd']"abcd",输出将为4

对于未定义的变量,过滤器返回0

19. length_is

如果值的长度是参数,则返回True,否则返回False

{{ value|length_is:"4" }}

如果value是['a', 'b', 'c', 'd']或"abcd",输出将为True。

20. linebreaks

替换纯文本中的换行为正确的HTML标签;单独的一个换行变成(<br/>) ,原文本用p标签包裹起来。

如果valueJoel\nis a slug,输出将为<p>Joel<br/>is a slug</p>

21. linebreaksbr

与linebreaks类似, 区别是, linebreaksbr只替换换行, 替换完成后没有p标签包裹.

如果valueJoel\nis a slug,输出将为Joel<br/>is a slug

22. linenumbers

输出多行文本时, 在行前显示行号.

{{ value|linenumbers }}

如果value为:

one two three

输出将是:

  1. one
  2. two
  3. three

23. ljust

将给定宽度的字段中的值左对齐。

"{{ value|ljust:"10" }}"

如果valueDjango,则输出将为“Django ”

24. lower

将字符串转换为全部小写。

如果valueABC, 则输出将为abc

25. make_list

返回转换为列表的值。

{{ value|make_list }}

如果value是字符串"Joel",输出将是列表['J', 'o' , 'e', 'l']。 如果value123,输出将为列表['1', '2', '3']

26. pluralize

如果值不是1则返回一个复数形式 , 通常用 's'表示.

例如:

You have {{ num_messages }} message{{ num_messages|pluralize }}.

如果num_messages1,则输出将为 You have 1 message. 如果num_messages2,输出将为 You have 2 messages.

另外如果你需要的不是 's'后缀的话, 你可以提供一个备选的参数给过滤器;

例如:

You have {{ num_walruses }} walrus{{ num_walruses|pluralize:"es" }}.

对于非一般形式的复数,你可以同时指定 单复数形式,用逗号隔开.

例如:

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

27. pprint

用于调试, 方便查看.

28. random

返回给定列表中的随机项。

{{ value|random }}

如果value是['a', 'b', 'c', 'd'], 输出可能是'c'.

29. rjust

右对齐给定宽度字段中的值。

30. safe

将字符串标记为在输出之前不需要进一步的HTML转义。 当自动转义关闭时,此过滤器不起作用。

31. safeseq

safe过滤器应用于序列的每个元素。 与对序列进行操作的其他过滤器(例如join)一起使用非常有用。

{{ some_list|safeseq|join:", " }}

32. slice

返回列表的一部分。

{{ some_list|slice:":2" }}

如果some_list['a', 'b', 'c'],那么输出将是['a', 'b']

33. striptags

尽一切可能努力剥离所有[X] HTML标签。

{{ value|striptags }}

如果value为"<b>cu ti</b>", 输出结果为cuti(不带样式).

34. time

根据给定的格式格式化时间。

实例:

now = datetime.datetime.now()

{{ now|time:'H:i:s' }}

输出类似:

13:25:53

35. timesince

将日期格式设为自该日期起的时间(例如,“4天,6小时”)。

实例:

now = datetime.datetime.now()

blog_date = now - datetime.timedelta(days=2)

{{ blog_date|timesince:now }}

{{ now|timesince:blog_date }}

输出类似:

2 days 0 minutes

36. timeuntil

与timesince类似

实例:

now = datetime.datetime.now()

blog_date = now - datetime.timedelta(days=2)

{{ blog_date|timeuntil:now }}

{{ now|timeuntil:blog_date }}

输出类似:

0 minutes 2 days

37. title

将字符串中的每个单词首字母转为大写

{{ value|title }}

如果value“my FIRST post”,输出将为“My First Post”

38. truncatechars

如果字符串字符多于指定的字符数量,那么会被截断。 截断的字符串将以可翻译的省略号序列(“...”)结尾。

{{ value|truncatechars:9 }}

如果value“myFIRSTpost”,输出将为“MyFirst...”

39.truncatewords

在一定数量的字后截断字符串。

{{ value|truncatewords:2 }}

如果value“my name is post”,输出将为“My name ...”

40. upper

将字符串转换为大写形式

{{ value|upper }}

如果valueabc, 则输出将为ABC

41. urlencode

转义要在URL中使用的值。

{{ value|urlencode }}

如果value"https://www.example.org/foo?a=b&c=d",输出将为"https%3A//www.example.org/foo%3Fa%3Db%26c%3Dd"

可以提供包含不应该转义的字符的可选参数。

如果未提供,则'/'字符被假定为安全的。 当所有字符应该转义时,可以提供空字符串。 像这样:

{{ value|urlencode:"" }}

如果value"https://www.example.org/",输出将为"https%3A%2F%2Fwww.example.org%2F"

42. wordcount

返回字数(单词数)

{{ value|wordcount }}

如果value“Joel is a slug”,输出将为4

43. wordwrap

以指定的行长度换行单词。

参考文档: https://yiyibooks.cn/xx/Django_1.11.6/ref/templates/builtins.html#ref-templates-builtins-tags

Django模板语言, 过滤器整理的更多相关文章

  1. Django模板语言 标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  2. Django模板语言,过滤器整理

    Django模板语言,过滤器整理 1. add {{ value|add:"2" }} 把add后的参数加给value: 处理时,过滤器首先会强制把两个值转换成Int类型. 如果强 ...

  3. Django模板语言,标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  4. Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag

    Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...

  5. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  6. Django模板语言相关内容 Djan

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  7. Django——模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  8. Django模板语言(常用语法规则)

    Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...

  9. Django模板语言与视图(view)

    常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...

随机推荐

  1. 渗透之路基础 -- 跨站脚本攻击XSS

    目录 漏洞原理及防御 XSS 原理分析:输出问题导致js代码被识别执行 XSS 技术分类 Cookie盗取 基于Xss的WebShell箱子的攻击 XSS相关防护过滤及绕过分析(参考链接) 防护: 绕 ...

  2. JS实现停留几秒sleep,Js中for循环的阻塞机制,setTimeout延迟执行

    //第一种,使用while循环 function sleep(delay) { var start = (new Date()).getTime(); while((new Date()).getTi ...

  3. UGUI的图集处理方式-SpriteAtlas的前世今生

    最糟糕的是人们在生活中经常受到错误志向的阻碍而不自知,真到摆脱了那些阻碍时才能明白过来. —— 歌德 说到UGUI的图集初学者可能觉得没什么难度,包括我刚开始接触的时候也是,甚至你在开发的时候只需要把 ...

  4. Servlet,过滤器和监听器的配置和使用

    一.什么是Servlet Servlet使用Java语言实现的程序,运行于支持Java语言的Web服务器或者应用服务器中.Servlet先于JSP出现,提供和客户端动态交互的功能.Servlet可以处 ...

  5. library not found for -ljpush-ios-3.2.1错误

    很多人在更新pod后报 library not found for -ljpush-ios-3.2.1(举例)错误,这其实是包含版本号类型错误. 究其原因:使用了版本号做库名字,pod升级后 Podf ...

  6. TypeScript语法基础

    什么是TypeScript? TypeScript是微软开发的一门编程语言,它是JavaScript的超集,即它基于JavaScript,拓展了JavaScript的语法,遵循ECMAScript规范 ...

  7. 手机端apk文件安装

    1.电脑端下载豌豆荚 2.手机连接电脑,打开手机USB调试模式(设置->开发人员选项,打开开发人员选项和USB调试) 3.在电脑中双击下载好的apk文件,即可打开豌豆角,然后便可安装到手机.

  8. Treap + 无旋转Treap 学习笔记

    普通的Treap模板 今天自己实现成功 /* * @Author: chenkexing * @Date: 2019-08-02 20:30:39 * @Last Modified by: chenk ...

  9. POJ 2155 Matrix (2维树状数组)

    POJ-Matrix 题意:给你一个n*n矩阵的灯泡,灯泡的初始状态都为0,T次操作,分别是翻转操作:将x1,y1 --- x2, y2的灯泡状态反转 和 查询操作 找出x1, y1位置灯泡的状态. ...

  10. Swift从入门到精通第八篇 - 方法 初识

    方法(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 方法 结构体.枚举.类都可以定义方法(实例方法.类型方法) 实例方法(Instance Methods) 实例方法只能用实例 ...