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

首頁 > 編程 > Python > 正文

django模板語法學(xué)習(xí)之include示例詳解

2020-02-16 11:08:44
字體:
供稿:網(wǎng)友

前言

在很多網(wǎng)站中,基本上的都會(huì)有一個(gè)開頭和一個(gè)結(jié)尾,在每一個(gè)網(wǎng)頁中都會(huì)顯示。相對(duì)于這種的來說,在Django中,最好的方法就是使用include的標(biāo)簽,在每一個(gè)模板中都加入這個(gè)開頭和結(jié)尾的標(biāo)簽。

include標(biāo)簽使用

假如我們有以下模板index.html,代碼為:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><div>網(wǎng)頁公共頭部部分</div><h2> 網(wǎng)頁body部分 </h2><div>網(wǎng)頁公共底部部分</div></body></html>

做過web開發(fā)的童鞋知道大部分網(wǎng)頁的公共頭部,公共底部部分代碼每個(gè)頁面都一樣,那么就應(yīng)該將其單獨(dú)拿出做為一個(gè)html, 這樣修改這部分代碼時(shí)候,不需要每個(gè)頁面都修改, 所以在django中我們可以這么做:

top.html

<div>網(wǎng)頁公共頭部部分</div> 

bottom.html

<div>網(wǎng)頁公共底部部分</div> 

index.html

<!DOCTYPE html> <html lang="en"> <head>  <meta charset="UTF-8">  <title>Title</title> </head> <body> {% include 'top.html' %} <h2> 網(wǎng)頁body部分 </h2> {% include 'bottom.html' %} </body> </html>

我們可以使用django模板引擎的Include語法,來將單獨(dú)的頁面包含到當(dāng)前模板頁面中。有同學(xué)有疑問,那我們通過視圖傳遞給模板的上下文,在被包含的模板中可以使用嗎?可以直接使用。

假如我們有如下視圖: 

def index(request):  return render(request, 'index.html', {'a': 100, 'b': 200}) 

該django的視圖函數(shù),傳遞給模板并渲染模板。

top.html修改如下:

<div>網(wǎng)頁公共頭部部分:{{ a }}</div> 

這么使用是沒有問題的。

我這里有這樣的一個(gè)問題,假如所有的頁面都使用共同的頭部top.html, 可能針對(duì)1.html 2.html 3.html所使用的頭部有些樣式不一樣,所需top.html:

<div classs='acss'>網(wǎng)頁公共頭部部分</div> 

但是對(duì)于5.html, 6.html使用的頭部樣式為:

<div class='bcss'>網(wǎng)頁公共頭部部分</div> 

 

很顯然,如果直接通過include方式包含公共頭部,會(huì)導(dǎo)致一些頁面顯示問題。既然部分參數(shù)不一樣,include允許我們傳遞參數(shù)給被include的模板,我們可以使用with語法,那么問題解決如下:

{{ % include 'top.html' with mycss='acss' % }} 

top.html可修改如下:

<div class='{{mycss}}'>網(wǎng)頁公共頭部部分</div>             
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 斗六市| 昆明市| 四平市| 城步| 庆安县| 腾冲县| 黑龙江省| 景洪市| 峨边| 梅河口市| 晋中市| 香格里拉县| 家居| 兴文县| 金门县| 古田县| 绥棱县| 长岛县| 海丰县| 长葛市| 彭阳县| 安阳县| 恩平市| 芒康县| 漾濞| 柏乡县| 临汾市| 建昌县| 含山县| 庆元县| 平定县| 冀州市| 布拖县| 兴国县| 沙雅县| 宁国市| 许昌县| 武平县| 珲春市| 黄冈市| 岢岚县|