關於Django的模板繼承與注意事項

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塊,其餘沒有被替換掉的就被子模板原封不動的繼承了下來。

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