Django 模板層
阿新 • • 發佈:2019-02-28
字符數 syntax 翻譯 人性 tran 人性化 field erb pps
模板
一、模板語法之變量
- {{ comment.create_time|date:"Y-m-d H:i:s" }}
- {{ bio|truncatewords:"30" }}
- {{ my_list|first|upper }}
- {{ name|lower }}
- {{ forloop.counter }}
- {{ forloop.first }}
- {{ forloop.last }}
在 Django 模板中遍歷復雜數據結構的關鍵是句點字符, 語法: {{var_name}}
?1 2 3 4 5 6 |
<h4>{{s}}< / h4>
<h4>列表:{{ l. 0 }}< / h4>
<h4>列表:{{ l. 2 }}< / h4>
<h4>字典:{{ dic.name }}< / h4>
<h4>日期:{{ date.year }}< / h4>
<h4>類對象列表:{{ person_list. 0.name }}< / h4>
|
二、模板之過濾器
語法:{{obj|filter__name:param}}
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
default:如果一個變量是false或者為空,使用給定的默認值。否則,使用變量的值。例如:
{{ value|default: "nothing" }}
length:返回值的長度。它對字符串和列表都起作用。例如:
{{ value|length }} 如果 value 是 [ ‘a‘ , ‘b‘ , ‘c‘ , ‘d‘ ],那麽輸出是 4 。
filesizeformat:將值格式化為一個 “人類可讀的” 文件尺寸 (例如 ‘13 KB‘ , ‘4.1 MB‘ , ‘102 bytes‘ , 等等)。例如:
{{ value|filesizeformat }} 如果 value 是 123456789 ,輸出將會是 117.7 MB。
date:如果 value = datetime.datetime.now()
{{ value|date: "Y-m-d" }}
slice :如果 value = "hello world"
{{ value| slice : "2:-1" }}
truncatechars:
如果字符串字符多於指定的字符數量,那麽會被截斷。截斷的字符串將以可翻譯的省略號序列(“...”)結尾。
參數:要截斷的字符數
{{ value|truncatechars: 9 }}
safe:Django的模板中會對HTML標簽和JS等語法標簽進行自動轉義,這樣是為了安全。如果不希望HTML元素被轉義,可以這樣:
value = "<a href=" ">點擊</a>"
{{ value|safe}}
|
這裏簡單介紹一些常用的模板的過濾器,更多詳見