模板過濾器
- 定義:在變量輸出時對變量的值進行處理
- 作用:可以通過使用過濾器來改變變量的輸出顯示
- 語法:{{ 變量 | 過濾器1:'參數值1' | 過濾器2:'參數值2' ... }}
常用過濾器
過濾器 | 說明 |
---|---|
lower | 將字符串轉換爲全部小寫 |
upper | 將字符串轉換爲大寫 |
safe | 默認不對變量內的字符串進行html轉義 |
add:"n" | 將value的值增加n |
truncatechars:'n' | 如果字符串字符多於指定的字符串數量,那麼會被截斷。截斷的字符串將以可翻譯的省略號序列("...")結尾 |
... |
模板的繼承
模板繼承可以使父模板的內容重用,子模板直接繼承父模板的全部內容並可以覆蓋父模板中相應的塊
語法-父模板中:
- 定義父模板中的塊block標籤
- 識別出哪些在子模塊中是允許被修改的
- block標籤:在父模板中定義,可以在子模板中覆蓋
語法-子模板中:
- 繼承模板 extends 標籤(寫在模板文件的第一行)
例如{% extends 'base.html' %} - 子模板 重寫父模板中的內容塊
{% block block_name %}
子模板用來覆蓋父模板中 block_name 塊的內容
{% endblock block_name %}
例子
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
{% block mytitle %}
<title>主頁</title>
{% endblock %}
</head>
<body>
<a href="/music_index">音樂頻道</a>
<a href="/sport_index">體育頻道</a>
<br>
{% block info %}
這是主頁
{% endblock %}
<br>
<h3>有任何問題請聯繫xxx</h3>
</body>
</html>
music.html
{% extends 'base.html' %}
{% block mytitle %}
<title>音樂頻道</title>
{% endblock %}
{% block info %}
歡迎來到音樂頻道
{% endblock %}
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')
urls.py
path('base_index',views.base_view),
path('music_index',views.music_view),
path('sport_index',views.sport_view),
重寫的覆蓋規則
- 不重寫,將按照父模板的效果顯示
- 重寫,則按照重寫效果顯示
注意
- 模板繼承時,服務器端的動態內容無法繼承