Django之前端模板繼承

2022-05-06 10:06:08 字數 1781 閱讀 9832

在使用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框架文...