Django模板過濾器和繼承示例詳解
模板過濾器
定義:在變量輸出時對變量的值進(jìn)行處理
作用:可以通過使用過濾器來改變變量的輸出顯示
語法:{{變量 | 過濾器:'參數(shù)值1' | 過濾器2:'參數(shù)值2' ...}}
常用的過濾器
| 過濾器 | 說明 |
|---|---|
| lower | 將字符串全部轉(zhuǎn)換為小寫 |
| upper | 將字符串全部轉(zhuǎn)換為大寫 |
| safe | 默認(rèn)不對變量內(nèi)的字符串進(jìn)行 html 轉(zhuǎn)義 |
| add:“n” | 將calue值增加n |
| truncatechars:‘n' | 如果字符多于指定的字符數(shù)量,那么會被截斷。截斷的字符串將以可翻譯的省略號序列("…")結(jié)尾 |
模板的繼承
模板的繼承可以使父模板的內(nèi)容重用,子模板直接繼承父模板的全部內(nèi)容并可以覆蓋父模板中響應(yīng)的塊
語法(父模板):
- 定義父模板中的塊 block 標(biāo)簽
- 標(biāo)識出哪些在字模塊中是允許被修改的
- block 標(biāo)簽:在父模板中定義,可以再子模板中覆蓋
語法(子模板):
繼承模板,extends 標(biāo)簽,寫在模板文件的第一行
例如: {% extends ‘base.html' %}
子模板重寫父模板中的內(nèi)容塊
{% block block_name %}
需要覆蓋 block_name 塊的內(nèi)容
{% endblock block_name %} #此時的 block_name 可以不寫
模板繼承樣例
views.py
def base_view(request): return render(request,'base.html') def music_view(request): return render(request,'music.html') def sport_view(request) return render(request,'sport.html')
在 templates文件夾中寫入對應(yīng)html文件:
- base.html
- music.html
- sport.html
base.html
<head>
<meta charset="utf-8">
{% block mytitle %}
<title> 主頁 </title>
{% endblock mytitle%}
</head>
<body>
<a href="/music_index"> 音樂頻道 </a>
<a href="/sport_index"> 體育頻道 </a>
<br>
{% block info %}
這是主頁
{% endblock info %}
<h3>有問題請聯(lián)系XXXX</h3>
</body>
</html>
sport.html
{% extends 'base.html' %}
{% block mytitle %}
<title> 體育頻道 </title>
{% block info %}
歡迎來到體育頻道
{% endblock info %}
music.html
{% extends 'base.html' %}
{% block mytitle %}
<title> 音樂頻道 </title>
{% block info %}
歡迎來到音樂頻道
{% endblock info %}
在url.py里綁定對應(yīng)路由
path('base_index',views.base_view)
path('music_index',views.music_view)
path('sport_index',views.sport_view)
測試結(jié)果



注意:模板繼承時,服務(wù)器端的動態(tài)內(nèi)容無法繼承
總結(jié)
到此這篇關(guān)于Django模板過濾器和繼承的文章就介紹到這了,更多相關(guān)Django模板過濾器和繼承內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信