国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 新营市| 阳东县| 鹤山市| 肇源县| 抚松县| 秭归县| 宁陵县| 资中县| 思南县| 广汉市| 常州市| 神木县| 香格里拉县| 陆河县| 田阳县| 安吉县| 广东省| 新化县| 海晏县| 土默特左旗| 页游| 疏附县| 施秉县| 万安县| 子洲县| 谷城县| 永济市| 镇坪县| 常山县| 姜堰市| 旬阳县| 青龙| 渝中区| 锡林郭勒盟| 台前县| 井研县| 新巴尔虎右旗| 马边| 开封市| 扎赉特旗| 阿克|