(2018-05-13.Python從Zero到One)6濒蒋、(Django)Django模板__1.4.2模板繼承

模板繼承

  • 模板繼承可以減少頁(yè)面內(nèi)容的重復(fù)定義,實(shí)現(xiàn)頁(yè)面內(nèi)容的重用
  • 典型應(yīng)用:網(wǎng)站的頭部、尾部是一樣的沪伙,這些內(nèi)容可以定義在父模板中瓮顽,子模板不需要重復(fù)定義
  • block標(biāo)簽:在父模板中預(yù)留區(qū)域,在子模板中填充
  • extends繼承:繼承围橡,寫(xiě)在模板文件的第一行
  • 定義父模板base.html
{ %block block_name%}
這里可以定義默認(rèn)值
如果不定義默認(rèn)值暖混,則表示空字符串
{ %endblock%}

  • 定義子模板index.html
{ % extends "base.html" %}

  • 在子模板中使用block填充預(yù)留區(qū)域
{ %block block_name%}
實(shí)際填充內(nèi)容
{ %endblock%}

說(shuō)明

  • 如果在模版中使用extends標(biāo)簽,它必須是模版中的第一個(gè)標(biāo)簽
  • 不能在一個(gè)模版中定義多個(gè)相同名字的block標(biāo)簽
  • 子模版不必定義全部父模版中的blocks翁授,如果子模版沒(méi)有定義block拣播,則使用了父模版中的默認(rèn)值
  • 如果發(fā)現(xiàn)在模板中大量的復(fù)制內(nèi)容,那就應(yīng)該把內(nèi)容移動(dòng)到父模板中
  • 使用可以獲取父模板中block的內(nèi)容
  • 為了更好的可讀性收擦,可以給endblock標(biāo)簽一個(gè)名字
{ % block block_name %}
區(qū)域內(nèi)容
{ % endblock block_name %}

三層繼承結(jié)構(gòu)

  • 三層繼承結(jié)構(gòu)使代碼得到最大程度的復(fù)用贮配,并且使得添加內(nèi)容更加簡(jiǎn)單
  • 如下圖為常見(jiàn)的電商頁(yè)面
day47_Django模板-01.png

1.創(chuàng)建根級(jí)模板

  • 名稱為“base.html”
  • 存放整個(gè)站點(diǎn)共用的內(nèi)容
<!DOCTYPE html>
<html>
<head>
    <title>{%block title%}{%endblock%} 水果超市</title>
</head>
<body>
top--{{logo}}
<hr/>
{%block left%}{%endblock%}
{%block content%}{%endblock%}
<hr/>
bottom
</body>
</html>

2.創(chuàng)建分支模版

  • 繼承自base.html
  • 名為“base_***.html”
  • 定義特定分支共用的內(nèi)容
  • 定義base_goods.html
{%extends 'temtest/base.html'%}
{%block title%}商品{%endblock%}
{%block left%}
<h1>goods left</h1>
{%endblock%}

  • 定義base_user.html
{%extends 'temtest/base.html'%}
{%block title%}用戶中心{%endblock%}
{%block left%}
<font color='blue'>user left</font>
{%endblock%}

  • 定義index.html,繼承自base.html塞赂,不需要寫(xiě)left塊
{%extends 'temtest/base.html'%}
{%block content%}
首頁(yè)內(nèi)容
{%endblock content%}

3.為具體頁(yè)面創(chuàng)建模板泪勒,繼承自分支模板

  • 定義商品列表頁(yè)goodslist.html
{%extends 'temtest/base_goods.html'%}
{%block content%}
商品正文列表
{%endblock content%}

  • 定義用戶密碼頁(yè)userpwd.html
{%extends 'temtest/base_user.html'%}
{%block content%}
用戶密碼修改
{%endblock content%}

4.視圖調(diào)用具體頁(yè)面,并傳遞模板中需要的數(shù)據(jù)

  • 首頁(yè)視圖index
logo='welcome to itcast'
def index(request):
    return render(request, 'temtest/index.html', {'logo': logo})

  • 商品列表視圖goodslist
def goodslist(request):
    return render(request, 'temtest/goodslist.html', {'logo': logo})

  • 用戶密碼視圖userpwd
def userpwd(request):
    return render(request, 'temtest/userpwd.html', {'logo': logo})

5.配置url

from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^list/$', views.goodslist, name='list'),
    url(r'^pwd/$', views.userpwd, name='pwd'),
]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宴猾,一起剝皮案震驚了整個(gè)濱河市酣藻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鳍置,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件送淆,死亡現(xiàn)場(chǎng)離奇詭異税产,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)偷崩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)辟拷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人阐斜,你說(shuō)我怎么就攤上這事衫冻。” “怎么了谒出?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵隅俘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我笤喳,道長(zhǎng)为居,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任杀狡,我火速辦了婚禮蒙畴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己膳凝,他們只是感情好碑隆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蹬音,像睡著了一般上煤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祟绊,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天楼入,我揣著相機(jī)與錄音,去河邊找鬼牧抽。 笑死嘉熊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扬舒。 我是一名探鬼主播阐肤,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼讲坎!你這毒婦竟也來(lái)了孕惜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晨炕,失蹤者是張志新(化名)和其女友劉穎衫画,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體瓮栗,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡削罩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了费奸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弥激。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖愿阐,靈堂內(nèi)的尸體忽然破棺而出微服,到底是詐尸還是另有隱情,我是刑警寧澤缨历,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布以蕴,位于F島的核電站,受9級(jí)特大地震影響辛孵,放射性物質(zhì)發(fā)生泄漏舒裤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一觉吭、第九天 我趴在偏房一處隱蔽的房頂上張望腾供。 院中可真熱鬧,春花似錦、人聲如沸伴鳖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)榜聂。三九已至搞疗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間须肆,已是汗流浹背匿乃。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留豌汇,地道東北人幢炸。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拒贱,于是被迫代替她去往敵國(guó)和親宛徊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • MTV模型 Django的MTV分別代表: Model(模型):負(fù)責(zé)業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)的對(duì)象(ORM) Templa...
    lkning閱讀 806評(píng)論 0 0
  • 第二章:視圖和URL 2.1第一個(gè)Django驅(qū)動(dòng)的頁(yè)面 頁(yè)面的內(nèi)容由視圖函數(shù)(view function)生成逻澳,...
    m風(fēng)滿樓閱讀 1,003評(píng)論 0 12
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案闸天? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • 定義模板 模板語(yǔ)言包括變量標(biāo)簽 { % 代碼塊 % }過(guò)濾器注釋{# 代碼或html #} 變量 語(yǔ)法: 當(dāng)模版引...
    lyh165閱讀 187評(píng)論 0 0
  • 她是圈苞氮。 她是一個(gè)不起眼的農(nóng)村中的一個(gè)不起眼的小女孩。 她遺忘了很多經(jīng)歷瓤逼,似乎永遠(yuǎn)只記得昏黃的路燈下那閃爍的影子笼吟。...
    Qian_Gyp閱讀 194評(píng)論 0 0