Django之模板層
阿新 • • 發佈:2018-10-23
裏的 oct tag 否則 pad 介紹 uil .cn boolean
,
truncatechars
1 模板語法之變量
在 Django 模板中遍歷復雜數據結構的關鍵是句點字符, 語法:
1 |
{{var_name}}
|
views.py:
def index(request): import datetime s="hello" l=[111,222,333] # 列表 dic={"name":"yuan","age":18} # 字典 date = datetime.date(1993, 5, 2) # 日期對象 class Person(object): def __init__(self,name): self.name=name person_yuan=Person("yuan") # 自定義類對象 person_egon=Person("egon") person_alex=Person("alex") person_list=[person_yuan,person_egon,person_alex] return render(request,"index.html",{"l":l,"dic":dic,"date":date,"person_list":person_list})
template:
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>
|
註意:句點符也可以用來引用對象的方法(無參數方法):
1 |
<h4>字典:{{ dic.name.upper }}< / h4>
|
2 模板之過濾器
語法:
1 |
{{obj|filter__name:param}}
|
default
如果一個變量是false或者為空,使用給定的默認值。否則,使用變量的值。例如:
1 |
{{ value|default: "nothing" }}
|
length
返回值的長度。它對字符串和列表都起作用。例如:
1 |
{{ value|length }}
|
如果 value 是 [‘a‘, ‘b‘, ‘c‘, ‘d‘],那麽輸出是 4。
filesizeformat
將值格式化為一個 “人類可讀的” 文件尺寸 (例如 ‘13 KB‘
‘4.1 MB‘
, ‘102 bytes‘
, 等等)。例如:
1 |
{{ value|filesizeformat }}
|
如果 value
是 123456789,輸出將會是 117.7 MB
。
date
如果 value=datetime.datetime.now()
1 |
{{ value|date: "Y-m-d" }}
|
slice
如果 value="hello world"
1 |
{{ value| slice : "2:-1" }}
|
truncatechars
如果字符串字符多於指定的字符數量,那麽會被截斷。截斷的字符串將以可翻譯的省略號序列(“...”)結尾。
參數:要截斷的字符數
例如:
1 |
{{ value|truncatechars: 9 }}
|
safe
Django的模板中會對HTML標簽和JS等語法標簽進行自動轉義,原因顯而易見,這樣是為了安全。但是有的時候我們可能不希望這些HTML元素被轉義,比如我們做一個內容管理系統,後臺添加的文章中是經過修飾的,這些修飾可能是通過一個類似於FCKeditor編輯加註了HTML修飾符的文本,如果自動轉義的話顯示的就是保護HTML標簽的源文件。為了在Django中關閉HTML的自動轉義有兩種方式,如果是一個單獨的變量我們可以通過過濾器“|safe”的方式告訴Django這段代碼是安全的不必轉義。比如:
1 |
value = "<a href=" ">點擊</a>"
|
1 |
{{ value|safe}}
|
這裏簡單介紹一些常用的模板的過濾器,更多詳見