Django模板語言,過濾器整理

Django模板語言,過濾器整理

1. add

{{ value|add:"2" }}html

把add後的參數加給value;python

處理時,過濾器首先會強制把兩個值轉換成Int類型。 若是強制轉換失敗, 它會試圖使用各類方式吧兩個值相加。git

實例:django

{{ arg|add:val }}安全

1)arg是5,val是3,將會輸出8dom

2)arg是5,val是'3',將會輸出8post

3)arg是'jason',val是'2',將會輸出jason2ui

4)arg是'jason',val是2,將會輸出空url

5)arg是[1, 2, 3],val是[4],將會輸出[1, 2, 3, 4]spa

 

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

以指定的行長度換行單詞。

相關文章
相關標籤/搜索