国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django中模版的子目錄與include標簽的使用方法

2019-11-25 17:10:46
字體:
來源:轉載
供稿:網友

get_template()中使用子目錄

把所有的模板都存放在一個目錄下可能會讓事情變得難以掌控。 你可能會考慮把模板存放在你模板目錄的子目錄中,這非常好。 事實上,我們推薦這樣做;一些Django的高級特性(例如將在第十一章講到的通用視圖系統)的缺省約定就是期望使用這種模板布局。

把模板存放于模板目錄的子目錄中是件很輕松的事情。 只需在調用 get_template() 時,把子目錄名和一條斜杠添加到模板名稱之前,如:

t = get_template('dateapp/current_datetime.html')

由于 render_to_response() 只是對 get_template() 的簡單封裝, 你可以對 render_to_response() 的第一個參數做相同處理。

return render_to_response('dateapp/current_datetime.html', {'current_date': now})

對子目錄樹的深度沒有限制,你想要多少層都可以。 只要你喜歡,用多少層的子目錄都無所謂。

注意

Windows用戶必須使用斜杠而不是反斜杠。 get_template() 假定的是 Unix 風格的文件名符號約定。

include 模板標簽

在講解了模板加載機制之后,我們再介紹一個利用該機制的內建模板標簽: {% include %} 。該標簽允許在(模板中)包含其它的模板的內容。 標簽的參數是所要包含的模板名稱,可以是一個變量,也可以是用單/雙引號硬編碼的字符串。 每當在多個模板中出現相同的代碼時,就應該考慮是否要使用 {% include %} 來減少重復。

下面這兩個例子都包含了 nav.html 模板。這兩個例子是等價的,它們證明單/雙引號都是允許的。

{% include 'nav.html' %}{% include "nav.html" %}

下面的例子包含了 includes/nav.html 模板的內容:

{% include 'includes/nav.html' %}

下面的例子包含了以變量 template_name 的值為名稱的模板內容:

{% include template_name %}

和在 get_template() 中一樣, 對模板的文件名進行判斷時會在所調取的模板名稱之前加上來自 TEMPLATE_DIRS 的模板目錄。

所包含的模板執行時的 context 和包含它們的模板是一樣的。 舉例說,考慮下面兩個模板文件:

# mypage.html<html><body>{% include "includes/nav.html" %}<h1>{{ title }}</h1></body></html># includes/nav.html<div id="nav">  You are in: {{ current_section }}</div>

如果你用一個包含 current_section的上下文去渲染 mypage.html這個模板文件,這個變量將存在于它所包含(include)的模板里,就像你想象的那樣。

如果{% include %}標簽指定的模板沒找到,Django將會在下面兩個處理方法中選擇一個:

  1.     如果 DEBUG 設置為 True ,你將會在 Django 錯誤信息頁面看到 TemplateDoesNotExist 異常。
  2.     如果 DEBUG 設置為 False ,該標簽不會引發錯誤信息,在標簽位置不顯示任何東西。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高邮市| 莒南县| 大庆市| 井冈山市| 潮州市| 永德县| 汾西县| 新巴尔虎左旗| 吉水县| 五大连池市| 夏河县| 上饶县| 金阳县| 丘北县| 北辰区| 织金县| 乡城县| 柘城县| 鲁山县| 青海省| 同心县| 霍林郭勒市| 全椒县| 平昌县| 家居| 通榆县| 莱芜市| 自治县| 康保县| 望奎县| 克山县| 灌南县| 商都县| 颍上县| 山丹县| 增城市| 咸阳市| 嘉义县| 饶阳县| 方山县| 吉林省|