|
圖片來源網(wǎng)絡(luò) 模板Templates在上一篇文章中我簡單的介紹了Django模板語言,這篇文章進(jìn)一步講解模板中的變量、標(biāo)簽等。 Django的模板是一個(gè)簡單的文本文件,它可以生成任何文本格式(HTML、XML、CSV等),在本文開始之前先看一個(gè)Django模板的例子: 從這個(gè)例子中可以看到,模板標(biāo)簽可以是單獨(dú)出現(xiàn)的,如extends標(biāo)簽;也可以是成對出現(xiàn)的,如block標(biāo)簽和for標(biāo)簽。而模板的主體就是一個(gè)HTML結(jié)構(gòu)的文本文件,看到這里我想如果有過ASP, PHP開發(fā)經(jīng)驗(yàn)的人都會(huì)感到很親切,因?yàn)樗鼈兊恼Z法非常相似,都是嵌入到HTML中的標(biāo)記語言。 變量Variables變量的基本用法:{{ variable }},當(dāng)模板引擎遇到變量時(shí)會(huì)將變量替換為具體值。變量名可以包含字母數(shù)字和下劃線,不能包含空格及其它特殊符號。句點(diǎn)(.)在變量中有特殊意義,如果模板引擎遇到了句點(diǎn)將會(huì)按照下面的順序?qū)ζ溥M(jìn)行解釋:
注意如果句點(diǎn)后面的變量是一個(gè)可以調(diào)用的方法的話,那么這個(gè)方法會(huì)按照空參數(shù)的方式調(diào)用,例如一個(gè)字典的iteritems方法可以在模板中用以下方式調(diào)用: 過濾器Filters你可以使用過濾器來修改變量值的顯示樣式。過濾器的使用方式 {{ 變量|過濾器方法}}。過濾器可以連續(xù)使用,形式如: {{ 變量|過濾器方法1|過濾器方法2}}。 注意變量、管道符(|)和過濾器方法之間不能有空格。 某些過濾器還可以接收參數(shù),例如:{{ bio|truncatewords:30 }},這句代碼的意思是顯示bio的前30個(gè)單詞。 如果過濾器參數(shù)包含空格的話,參數(shù)就要用引號擴(kuò)起來,例如:{{ list|join:', ' }}。 Django大約提供了60個(gè)過濾器,具體介紹可以在Django官網(wǎng)看到: https://docs./en/1.11/ref/templates/builtins/#ref-templates-builtins-filters。 下面介紹幾種常用的過濾器:
如果變量是false或者空,顯示default值:例如: {{ value|default:'nothing' }},如果value是false會(huì)在頁面上顯示nothing。
顯示一個(gè)字符串或者數(shù)組的長度,如:{{ value|length }}
將文件大小按照人類可讀的形式顯示,例如一個(gè)文件由123456789,那么顯示成117.7 MB,語法形式:{{ value|filesizeformat }}
加法運(yùn)算:{{ value|add:'2' }} 這個(gè)方法會(huì)先按照數(shù)值來計(jì)算,如果失敗了就直接將兩個(gè)值拼接在一起,如連接兩個(gè)數(shù)組。
首字母大寫:{{ value|capfirst }}
刪除指定值,例如去掉字符串中的空格:{{ value|cut:' ' }} 如果value是'String with spaces',那么輸出'Stringwithspaces'.
格式化日期,該方法參數(shù)較多也很重要,請參考Django官網(wǎng)。
將一個(gè)字典按照某一字典項(xiàng)進(jìn)行排序后返回, 例如,有一個(gè)字典users如下,包含三個(gè)人員信息: 按照人名進(jìn)行排序: 顯示樣式:
將一個(gè)html字符串轉(zhuǎn)意: 瀏覽器顯示:
拼接多個(gè)元素 標(biāo)簽Tags
循環(huán)執(zhí)行標(biāo)簽內(nèi)部代碼,例如:
和其它編程語言的if語句一樣,當(dāng)條件為真或不為空時(shí),執(zhí)行代碼塊,例如:
If標(biāo)簽中可以嵌套其它標(biāo)簽。 注釋Comments兩種注釋方式: {# 這里是注釋 #} 注釋標(biāo)簽:
|
|
|