python--Django之模板層(template)
阿新 • • 發佈:2017-11-10
cat spa 後臺 數據 htm title 開始 temp document
truncatechars
1.模板層的功能
為了更有邏輯的將數據庫中的數據渲染到模板中。
2.模板語法:
{{var_name}} #渲染變量用的
{% url %} #渲染標簽用的
3.變量的渲染
例子:
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})
4.模板之過濾器
語法:
{{obj|filter__name:param}}
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 }}
如果value是“Joel 是 a >,輸出將為“Joel i ...” 。
safe
Django的模板中會對HTML標簽和JS等語法標簽進行自動轉義,原因顯而易見,這樣是為了安全。但是有的時候我們可能不希望這些HTML元素被轉義,比如我們做一個內容管理系統,後臺添加的文章中是經過修飾的,這些修飾可能是通過一個類似於FCKeditor編輯加註了HTML修飾符的文本,如果自動轉義的話顯示的就是保護HTML標簽的源文件。為了在Django中關閉HTML的自動轉義有兩種方式,如果是一個單獨的變量我們可以通過過濾器“|safe”的方式告訴Django這段代碼是安全的不必轉義。比如:
value="<a href="">點擊</a>" {{ value|safe}}
5.模板之標簽