django-templates過濾器

經常使用內置過濾器:

過濾器會更改量或便籤參數的值:git

title過濾器:

{{ django|title }}

在下列context中web

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

django變量值都是小寫,通過過濾器渲染以後就會變成:django

The Web Framework For Perfectionists With Deadlines

add加

把add後的參數加給value
例如:安全

{{ value|add:"2" }}

若是 value 爲 4 ,則會輸出 6 .
過濾器首先會強制把兩個值轉換成Int類型。若是強制轉換失敗, 它會試圖使用各類方式吧兩個值相加。它會使用一些數據類型 (字符串, 列表, 等等.) 其餘類型則會失敗. 若是轉換失敗,結果會變成一個空字符串
例如,咱們使用下面的值dom

{{ first|add:second }}

first 是 [1, 2, 3] , second 是 [4, 5, 6] , 將會輸出
[1, 2, 3, 4, 5, 6] .
警告
若是字符串能夠被強制轉換成int類型則會 summed,沒法被轉換,則和上面的第一個例子同樣url

addslashes

在引號前面加上斜杆。例如,用於在CSV中轉義字符串。
例如:spa

{{ value|addslashes }}

若是 value  是  "I'm using Django"  , 輸出將變成  "I\'m using Django"  code

capfirst

大寫變量的第一個字母。若是第一個字符不是字母,該過濾器將不會生效。
例如:orm

{{ value|capfirst }}

若是 value 是 "django" , 輸出將變成 "Django" .對象


center


使"value"在給定的寬度範圍內居中.
例如:

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

若是 value 是 "Django" ,輸出將是 「 Django t7> 。

cut切

移除value中全部的與給出的變量相同的字符串
例如:

{{ value|cut:" " }}    {{ 「You are not a Englishman」 | cut:」not」 }}

將輸出‘’You are a Englishman「

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 。

 linenumbers

顯示帶行號的文本。
例如:

{{ value|linenumbers }}


若是 value 爲:

one
two
three

輸出將是:

1\. one
2\. two
3\. three

lower

將字符串轉換爲所有小寫。
例如:

{{ value|lower }}

若是 value 爲 MAD  輸出 mad  。

make_list


返回轉換爲列表的值。對於字符串,它是一個字符列表。對於整數,在建立列表以前將參數強制轉換爲unicode字符串。
例如:

{{ value|make_list }}

若是 value 是字符串 "Joel" ,輸出將是列表 ['J', 'o' , 'e', 'l'] 。若是 value 是 123 ,則輸出將是列表 ['1', '2', '3'] 。

phone2numeric


將電話號碼(可能包含字母)轉換爲其等效數字。輸入沒必要是有效的電話號碼。這將很樂意轉換任何字符串。
例如:

{{ value|phone2numeric }}


若是 value 爲 800-COLLECT ,輸出將爲 800-2655328 。

random

返回給定列表中的隨機項。

例如:

{{ value|random }}

若是列表是['a', 'b', 'c'],輸出將是任意一個。

 time

根據給定的格式格式化時間。
給定格式能夠是預約義的 TIME_FORMAT ,也能夠是與 date 過濾器相同的自定義格式。請注意,預約義的格式是與區域設置相關的。
例如:

{{ value|time:"H:i" }}

若是 value 等效於 datetime.datetime.now() ,則輸出將爲字符串 "01:23" 。
另外time過濾器只接受字符串中與時間相關的參數,而不是時間。

upper


將字符串轉換爲大寫形式:
例如:

{{ value|upper }}

若是 value 是 「Joel ;,輸出將爲 「JOEL 」 。

urlencode

轉義要在URL中使用的值。
例如:

{{ value|urlencode }}

If value is "http://www.example.org/foo?a=b&c=d" , the output will be"http%3A//www.example.org/foo%3Fa%3Db%26c%3Dd" .

能夠提供包含不該該轉義的字符的可選參數。
若是未提供,則'/'字符被假定爲安全的。當全部字符應該轉義時,能夠提供空字符
串。例如:

{{ value|urlencode:"" }}
若是 value 爲 "http://www.example.org/" ,輸出將爲 "http%3A%2F%2Fwww.example.org%2F" 。
相關文章
相關標籤/搜索