{% include '模版名稱' %}
來調用.include
子模版的時候,傳遞一些參數,那麼可使用with xxx=xxx
的形式.示例代碼以下:{% include 'header.html' with user='yan' %}
在前端頁面開發中。有些代碼是須要重複使用的。這種狀況可使用include
標籤來實現。也可使用另一個比較強大的方式來實現,那就是模版繼承。模版繼承相似於Python
中的類,在父類中能夠先定義好一些變量和方法,而後在子類中實現。模版繼承也能夠在父模版中先定義好一些子模版須要用到的代碼,而後子模版直接繼承就能夠了。而且由於子模版確定有本身的不一樣代碼,所以能夠在父模版中定義一個block接口,而後子模版再去實現。如下是父模版的代碼:javascript
{% load static %} <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="{% static 'style.css' %}" /> <title>{% block title %}個人站點{% endblock %}</title> </head> <body> <div id="sidebar"> {% block sidebar %} <ul> <li><a href="/">首頁</a></li> <li><a href="/blog/">博客</a></li> </ul> {% endblock %} </div> <div id="content"> {% block content %}{% endblock %} </div> </body> </html>
這個模版,咱們取名叫作base.html
,定義好一個簡單的html
骨架,而後定義好兩個block
接口,讓子模版來根據具體需求來實現。子模板而後經過extends
標籤來實現,示例代碼以下:css
{% extends "base.html" %} {% block title %}博客列表{% endblock %} {% block content %} {% for entry in blog_entries %} <h2>{{ entry.title }}</h2> <p>{{ entry.body }}</p> {% endfor %} {% endblock %}
須要注意的是:extends標籤必須放在模版的第開始的位置
子模板中的代碼必須放在block中,不然將不會被渲染。
若是在某個block
中須要使用父模版的內容,那麼可使用{{block.super}}
來繼承。好比上例,{%block title%}
,若是想要使用父模版的title
,那麼能夠在子模版的title block
中使用{{ block.super }}
來實現。html
在定義block
的時候,除了在block
開始的地方定義這個block
的名字,還能夠在block
結束的時候定義名字。好比{% block title %}{% endblock title %}
。這在大型模版中顯得尤爲有用,能讓你快速的看到block
包含在哪裏。前端