模板過濾器
定義:在變量輸出時(shí)對變量的值進(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ù)量,那么會被截?cái)?。截?cái)嗟淖址畬⒁钥煞g的省略號序列("…")結(jié)尾 |
模板的繼承
模板的繼承可以使父模板的內(nèi)容重用,子模板直接繼承父模板的全部內(nèi)容并可以覆蓋父模板中響應(yīng)的塊
語法(父模板):
- 定義父模板中的塊 block 標(biāo)簽
- 標(biāo)識出哪些在字模塊中是允許被修改的
- block 標(biāo)簽:在父模板中定義,可以再子模板中覆蓋
語法(子模板):
繼承模板,extends
標(biāo)簽,寫在模板文件的第一行
例如: {% extends ‘base.html' %}
子模板重寫父模板中的內(nèi)容塊
1
2
3
|
{ % block block_name % } 需要覆蓋 block_name 塊的內(nèi)容 { % endblock block_name % } #此時(shí)的 block_name 可以不寫 |
模板繼承樣例
views.py
1
2
3
4
5
6
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
< 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
1
2
3
4
5
6
|
{% extends 'base.html' %} {% block mytitle %} < title > 體育頻道 </ title > {% block info %} 歡迎來到體育頻道 {% endblock info %} |
music.html
1
2
3
4
5
6
|
{% extends 'base.html' %} {% block mytitle %} < title > 音樂頻道 </ title > {% block info %} 歡迎來到音樂頻道 {% endblock info %} |
在url.py里綁定對應(yīng)路由
1
2
3
|
path( 'base_index' ,views.base_view) path( 'music_index' ,views.music_view) path( 'sport_index' ,views.sport_view) |
測試結(jié)果
注意:模板繼承時(shí),服務(wù)器端的動態(tài)內(nèi)容無法繼承
總結(jié)
到此這篇關(guān)于Django模板過濾器和繼承的文章就介紹到這了,更多相關(guān)Django模板過濾器和繼承內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/NGUP_LEE/article/details/121024247