django模板語法學習之include示例詳解
前言
在很多網(wǎng)站中,基本上的都會有一個開頭和一個結尾,在每一個網(wǎng)頁中都會顯示。相對于這種的來說,在Django中,最好的方法就是使用include的標簽,在每一個模板中都加入這個開頭和結尾的標簽。
include標簽使用
假如我們有以下模板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)頁的公共頭部,公共底部部分代碼每個頁面都一樣,那么就應該將其單獨拿出做為一個html, 這樣修改這部分代碼時候,不需要每個頁面都修改, 所以在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語法,來將單獨的頁面包含到當前模板頁面中。有同學有疑問,那我們通過視圖傳遞給模板的上下文,在被包含的模板中可以使用嗎?可以直接使用。
假如我們有如下視圖:
def index(request): return render(request, 'index.html', {'a': 100, 'b': 200})
該django的視圖函數(shù),傳遞給模板并渲染模板。
top.html修改如下:
<div>網(wǎng)頁公共頭部部分:{{ a }}</div>
這么使用是沒有問題的。
我這里有這樣的一個問題,假如所有的頁面都使用共同的頭部top.html, 可能針對1.html 2.html 3.html所使用的頭部有些樣式不一樣,所需top.html:
<div classs='acss'>網(wǎng)頁公共頭部部分</div>
但是對于5.html, 6.html使用的頭部樣式為:
<div class='bcss'>網(wǎng)頁公共頭部部分</div>
很顯然,如果直接通過include方式包含公共頭部,會導致一些頁面顯示問題。既然部分參數(shù)不一樣,include允許我們傳遞參數(shù)給被include的模板,我們可以使用with語法,那么問題解決如下:
{{ % include 'top.html' with mycss='acss' % }}
top.html可修改如下:
<div class='{{mycss}}'>網(wǎng)頁公共頭部部分</div>
被包含模板中部分參數(shù),由我們include的時候動態(tài)指定,那么top.html就不會因為細微差別而編寫多份代碼了。
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Python3批量創(chuàng)建Crowd用戶并分配組
這篇文章主要介紹了Python3批量創(chuàng)建Crowd用戶并分配組,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05Python運維之獲取系統(tǒng)CPU信息的實現(xiàn)方法
今天小編就為大家分享一篇Python運維之獲取系統(tǒng)CPU信息的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python 爬蟲網(wǎng)頁登陸的簡單實現(xiàn)
這篇文章主要介紹了python 爬蟲網(wǎng)頁登陸的簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11python Hypothesis生成和執(zhí)行大量的測試用例
Hypothesis是一個基于屬性的測試(property-based testing)庫,它能夠幫助我們生成和執(zhí)行大量的測試用例,與傳統(tǒng)的單元測試相比,屬性測試更加靈活和全面,能夠發(fā)現(xiàn)更多的邊界情況和潛在的錯誤2024-01-01