django模板組件化

Django 模板組件化

Django中也有模板組件化的思想。在模板的應用中有包含、繼承的概念。

包含:include

不難理解,包含就是指一個模板裏包含另一模板裏內容

舉個栗子

比如我們要再A.html裏應用B.html裏的內容,也就是A裏包含B,我們可以這樣寫:

<!DOCTYPE html>
<html>
<head>
    <title>title</title>
</head>
<body> 
{% include 'B.html' %}
</body>
</html>

{% include 'B.html' %}

來寫即可。這時候A裏引用的js或者css,B都可以使用。所以B模板裏可以只寫body裏的代碼,如:

<div>
    <h1>我是B模板</h1>
</div>

繼承:extends

所謂繼承就是子頁面可以繼承父頁面的裏內容,也可以重寫父頁面的某些內容

舉個栗子

比如我們要C.html繼承A.html,並且重寫指定部分的代碼:

A.html

<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}默認標題{% endblock %}</title>
</head>
<body>
{% include 'B.html' %}
{% block content %}
<div>這裏是默認內容,所有繼承自這個模板的,如果不覆蓋就顯示這裏的默認內容。</div>
{% endblock %}

</body>
</html>

C.html

{% extends 'A.html' %}
{% block title %}歡迎光臨首頁{% endblock %}
{% block content %}
這裏是C頁面,歡迎光臨
{% endblock %}

說明:

block 標籤是告訴django我這個地方是可以重寫的。比如A頁面裏有個{% block title %}默認標題{% endblock %},我在C頁面同樣通過{% block title %}歡迎光臨首頁{% endblock %}這個標籤就可以重寫A頁面相對應的部分了。同理{% block content %}{% endblock %}標籤也是一樣的道理。

無論是繼承還是包含,子頁面裏都可以使用父頁面裏引入的js和css。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章