關於Django的模板繼承與注意事項
阿新 • • 發佈:2019-01-27
Django中的模板引擎中,子模板繼承父模板中是這樣實現的。
在父模板(假設url為:dad.html)中,
<!doctype html>
<head>
...
{% block title %}
<title>aaa</title>
{% endblock %}
</head>
<body>
{% block content %}
<div>
<p>aaa</p>
</div >
{% endblock %}{% block text %}
<h1>我沒有被覆蓋</h1>
{% endblock %}
</body>
</html>
在子模板(假設url為:child.html)中沒有任何東西,只有以下程式碼
{% block title %}
<title>bbb</title>
{% endblock %}{% block content %}
<div>
<p>bbbbb</p>
</div >
{% endblock %}
當我們打開了子模板的路徑後,子模板中block包含的東西為覆蓋掉父模板中同名block所包含的東西。若父模板中有東西沒有被子模板覆蓋,如上面父模板中的text。那麼父模板中名為text的block的內容將會被繼承下來到子模板中顯示。
需要注意的是:
1. block的格式為:{% block name %}…{% endblock %}
2. block中,前面的百分號的後面需要有空格,後面的百分號前面需要有空格。必須按格式來,否則模板引擎會識別不了
3. 說到底,子模板的繼承其實就是 替換掉 父模板中同名的block塊,其餘沒有被替換掉的就被子模板原封不動的繼承了下來。