django-过滤器

过滤器:

过滤器会更改量或便签参数的值:

title过滤器:

{{ django|title }}

在下列context中

{'django': 'the web framework for perfectionists with deadlines'}

django变量值都是小写,经过过滤器渲染之后就会变成:

The Web Framework For Perfectionists With Deadlines

内置过滤器参考:

add加

把add后的参数加给value
例如:

{{ value|add:"2" }}

如果 value 为 4 ,则会输出 6 .
过滤器首先会强制把两个值转换成Int类型。如果强制转换失败, 它会试图使用各种
方式吧两个值相加。它会使用一些数据类型 (字符串, 列表, 等等.) 其他类型则会失
败. 如果转换失败,结果会变成一个空字符串
例如,我们使用下面的值

{{ first|add:second }}

first 是 [1, 2, 3] , second 是 [4, 5, 6] , 将会输出
[1, 2, 3, 4, 5, 6] .
警告
如果字符串可以被强制转换成int类型则会 summed,无法被转换,则和上面的第
一个例子一样

addslashes

在引号前面加上斜杆。例如,用于在CSV中转义字符串。
例如:

{{ value|addslashes }}

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

capfirst

大写变量的第一个字母。如果第一个字符不是字母,该过滤器将不会生效。
例如:

{{ value|capfirst }}

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


center


使"value"在给定的宽度范围内居中.
例如:

"{{ value|center:"15" }}"

如果 value 是 "Django" ,输出将是 “ Django t7> 。

cut切

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

{{ value|cut:" " }}

如果 value 为 “String 与 空格” ,输出将为 "Stringwithspaces" 。

date日期

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

例如:

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

如果 value 是 datetime 对象(例如, datetime.datetime.now() 的结果),输出将分别是是字符串 'Wed 09 Jan 2008', ‘Jan 09 2008’ 。

default默认:

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

{{ value|default:"nothing" }}

如果 value 为 "" (空字符串),则输出将为 nothing 。

default_if_none

如果(且仅当)value为 None ,则使用给定的默认值。否则,使用该value。
注意,如果给出一个空字符串,默认值将不被使用。如果要回退空字符串,请使用 default 过滤器。
例如:

{{ value|default_if_none:"nothing" }}

如果 value 为 None ,则输出将为字符串 “nothing”

dictsort

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

{{ value|dictsort:"name" }}

如果 value 为:

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

那么输出将是:

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

也可以用来做更复杂的事情:

{% for book in books|dictsort:"author.age" %}
  *{{ book.title }} ({{ book.author.name }})
{% endfor %}

如果books为:

[
{'title': '1984', 'author': {'name': 'George', 'age': 45}},
{'title': 'Timequake', 'author': {'name': 'Kurt', 'age': 75},
{'title': 'Alice', 'author': {'name': 'Lewis', 'age': 33}},
]

输出将为:

* Alice (Lewis)
* 1984 (George)
* Timequake (Kurt

dictsortresvered

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

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

{{ value|divisibleby:"3" }}

如果 value 是 21 ,则输出将为 True 。

escape逃逸

使用形式:

{{ value | escape}} 

意义:替换value中的某些字符,以适应HTML格式,包括: 
< is converted to &lt; 
> is converted to &gt; 
’ (single quote) is converted to &#39; 
” (double quote) is converted to &quot; 
& is converted to &amp;

escape仅仅在输出的时候才起作用,所以escape不能够用在链式过滤器的中间, 

他应该总是最后一个过滤器,如果想在链式过滤器的中间使用,那么可以使用force_escape

first第一

返回列表中的第一项。
内建标签和过滤器
654
例如:

{{ value|first }}

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

floatformat

使用形式:

{{ value|floatformat }}或者{{ value|floatformat:arg }} 

arg可以是正数也可以是负数。没有参数的floatformat相当于floatformat:-1 
(1)如果不带arg,那么引擎会四舍五入,同时最多只保留一位小数。

34.23234 {{ value|floatformat }} 34.2 
34.00000 {{ value|floatformat }} 34 
34.26000 {{ value|floatformat }} 34.3

(2)如果arg是正数,那么引擎会四舍五入,同时保留arg位的小数。

34.23234 {{ value|floatformat:3 }} 34.232 
34.00000 {{ value|floatformat:3 }} 34.000 
34.26000 {{ value|floatformat:3 }} 34.260

(3)如果arg是负数,那么引擎会四舍五入,如果有小数部分,那么保留arg位小数;否则,则没有任何小数部分。

34.23234 {{ value|floatformat:”-3” }} 34.232 
34.00000 {{ value|floatformat:”-3” }} 34 
34.26000 {{ value|floatformat:”-3” }} 34.26

get_digit

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

{{ value|get_digit:"2" }}

如果 value 为 123456789 ,则输出将为 8 。

join加入

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

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

如果 value 是列表 ['a', 'b', 'c'] /,输出将是字符串 “a // b //c“ 。

last

返回列表中的最后一个项目。
例如:

{{ value|last }}

如果列表为  ['a', 'b', 'c', 'd'] , 输出为"d" .

length

返回值的长度。这适用于字符串和列表。
例如:

{{ value|length }}

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

length_is

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

{{ value|length_is:"4" }}

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

猜你喜欢

转载自www.cnblogs.com/welan/p/9211166.html