Django之模板繼承

  爲了在Django模板配置中減小代碼的冗餘,需使用模板繼承css

1. 語法

{% block classinfo %}
{% endblock}

2. 步驟

(1)建立一個base.html把須要顯示的頁面內容寫在裏面html

(2)在title部分寫個盒子,之後誰來擴展就在這裏面添加相應的內容,即完成title.htmljava

<title>
    {% block title %}
    {% endblock %}
</title>

(3)建立一個title.html,讓title.html繼承base.htmlbootstrap

{%extends "base.html"%} #必須放在首行

  繼續添加內容:ui

{%block title%}blog titles{%endblock%}

(4)也能夠分別在base.html或title.html中寫好多盒子,方法同上spa

{%load staticfiles%}
<!DOCTYPE html>
<html lang="zh-cn">
    <head>
        <meta http-equiv="X-UA_compatible" content="IE=Edge">
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>
            {%block title%}
            {%endblock%}
        </title>
        <link rel="stylesheet" href="{% static 'css/bootstrap.css'%}">
    </head>
    <body>
        {%include 'header.html'%}
        <div class="container">
            {%block content%}
            {%endblock%}
        </div>
        {%include 'footer.html'%}
        {% block javascritp%}{%endblock%}
    </body>
</html>
注意:盒子裏面能夠又默認的內容,若是又默認的時候你不擴展就走默認的,若是你擴展了,就替換了,若是要實現不替換直接在後面追加的話,能夠使用{% block.super%}方法
{% block menu %}
  {{ block.super }}
  <p>!!!</p>       #先繼承父類的,後插入數據
{% endblock %}

3. 總結

(1)模板繼承圍繞兩點:繼承和擴展,有什麼繼承什麼,擴展的是盒子code

(2)模板中設置的盒子越多越好,由於這樣你想擴展的時候就擴展,不想擴展的時候就不擴展了htm

(3)爲了更好的可讀性,你也能夠給你的{% endblock %}標籤一個名字,例如:blog

{% block content %}
...
{% endblock content %} 

(4)不能在一個模板中使用多個相同名字的block標籤繼承

相關文章
相關標籤/搜索