在使用django進行web開發時,往往會構造乙個基礎框架模板即base.html,而後在其子模板中對它所包含站點公用部分和定義塊進行過載。
首先建立乙個base.html,原始碼為:
[html]view plain
copy
>
title>
head>
thanks for visiting my site.p>
body>
html>
這個叫做base.html的模板定義了乙個簡單的html框架文件,等會我們將在我們的站點中的頁面使用它。子模板的作用就是過載、新增
或保留那些塊的內容。
現在新建乙個current_datetime.html模板來使用它:
[html]view plain
copy
the current time
it is now }.p>
再新建乙個hours_ahead.html模板,原始碼為:
[html]view plain
copy
future time
in } hour(s),it will be }.p>
上面的部分非html標籤等會再來解釋它,現在在views.py中新建兩個函式,index4,與index5,分別對應這兩個模板。原始碼為:
[python]view plain
copy
def index4(req,offset):
offset=int(offset)
next_time=datetime.datetime.now()+datetime.timedelta(hours=offset)
return render_to_response("hours_ahead.html",)
def index5(req):
now=datetime.datetime.now()
return render_to_response('current_datetime.html',)
在url中的配置為:
[python]view plain
copy
url(r'^hours_ahead/(\d$)','blog.views.index4'),
url(r'^current_datetime/$','blog.views.index5'),
現在啟動伺服器,在瀏覽器中檢視效果,current_datetime.html為:
hours_ahead.html中的效果為:
如此兩個html效果就顯示出來了,同時也解釋一下base.html中所起的作用,兩個html中都使用了標記,
這個就是繼承base.html中的內容,在使用 時,中間的內容便是插入在使用了base.html兩個標籤的
中間,由此便極大的避免了**的冗餘。每個模板只包含自己獨一無二的**,無需多餘的部分,而如果想要進行站點級的設計修改,僅需
修改base.html,所有其他模板會立即反映出所做修改。
上述,便是django之繼承使用base.html模板。
Django前端模板的繼承
前端模板的繼承是為了解決前端 重複問題。前端 重複問題可以用include標籤來實現,也可用前端模板的繼承來實現。前端模板繼承原理 在父模版中定義乙個block介面,然後子模版再去實現。include只是匯入檔案 繼承可用 在父模版base.html模組中,定義好兩個 block介面,子模板然後通過...
django模板繼承
1 本質上說 模板繼承就是先構造乙個基礎框架模板,而後在其子模板中對它所包含站點共用部分和定義進行過載。建立 base.html模板 謝謝對 的支援 2 建立子模板test4.html 現在時間 現在時間是 3 編寫檢視函式 views.py def test4 request 51 now dat...
Django之模板繼承
在使用django進行web開發時,往往會構造乙個基礎框架模板即base.html,而後在其子模板中對它所包含站點公用部分和定義塊進行過載。首先建立乙個base.html,原始碼為 thanks for visiting my site.這個叫做base.html的模板定義了乙個簡單的html框架文...