django模版引擎中最強大也是最複雜的部分就是模版繼承了。模版繼承可以讓您建立乙個基本的「骨架」模版,它包含您站點中的全部元素,並且可以定義能夠被子模版覆蓋的 blocks 。
通過從下面這個例子開始,可以容易的理解模版繼承:
doctype html
>
<
html
lang
="en"
>
<
head
>
<
link
rel="stylesheet"
herf
="style.css"
/>
<
title
>my amazing site
title
>
head
>
<
body
>
<
div
id="sidebar"
>
<
ul>
<
li><
a herf
="/"
>home
a>
li>
<
li><
a herf
="/blog"
>blog
a>
li>
ul>
div>
<
div
id="content"
>
div>
body
>
html
>
這個模版,我們把它叫作base.html
, 它定義了乙個可以用於兩列排版頁面的簡單html骨架。「子模版」的工作是用它們的內容填充空的blocks。
在這個例子中,block
標籤定義了三個可以被子模版內容填充的block。block
告訴模版引擎: 子模版可能會覆蓋掉模版中的這些位置。
子模版可能看起來是這樣的:12
3456
78910
my amazing blog
}<
/
h2>
}<
/
p>
extends
標籤是這裡的關鍵。它告訴模版引擎,這個模版「繼承」了另乙個模版。當模版系統處理這個模版時,首先,它將定位父模版——在此例中,就是「base.html」。
那時,模版引擎將注意到base.html
中的三個block
標籤,並用子模版中的內容來替換這些block。根據blog_entries
的值,輸出可能看起來是這樣的:12
3456
78910
1112
1314
1516
1718
1920
2122
2324
my amazing blog<
/
title>
<
/
head>
id
=
"sidebar"
>
最後,請注意您並不能在乙個模版中定義多個相同名字的block
標籤。這個限制的存在是因為block標籤的作用是「雙向」的。這個意思是,block標籤不僅提供了乙個坑去填,它還在 _父模版_中定義了填坑的內容。如果在乙個模版中有兩個名字一樣的block
標籤,模版的父模版將不知道使用哪個block的內容。
yii 模板繼承
render和renderpartial的區別 前者渲染父模板,將渲染的內容嵌入到父模板中 後者不渲染父模板,只會輸出本次渲染的區域性內容。所以,模板繼承要使用方法render,而不是renderpartial。模板繼承 1 子模板繼承父模板 1 控制器新增語句public layout 自定義的父...
模板布局 繼承
乙個 的多個頁面往往有著相同的頁首和頁尾,每次都重新編寫效率就很低,這個時候利用模板繼承就很有效了。1 首先編寫乙個templates資料夾下的news.html模板 lang en xmlns th head th fragment header th text h div body html 2...
django模板繼承
1 本質上說 模板繼承就是先構造乙個基礎框架模板,而後在其子模板中對它所包含站點共用部分和定義進行過載。建立 base.html模板 謝謝對 的支援 2 建立子模板test4.html 現在時間 現在時間是 3 編寫檢視函式 views.py def test4 request 51 now dat...