是的,有一種模式完全符合您的需求。在DJANGO中稱爲template inheritance。
您將基本上有一個基本模板與您的標題,徽標和主要內容佔位符。喜歡的東西(從鏈接中提取我放在上面):
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css" />
<title>{% block title %}My amazing site{% endblock %}</title>
</head>
<body>
<div id="sidebar">
{% block sidebar %}
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
{% endblock %}
</div>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
然後,您的實際網頁上(使用模板中的一個),你將有:
{% extends "base.html" %}
{% block title %}My amazing blog{% endblock %}
{% block content %}
{% for entry in blog_entries %}
<h2>{{ entry.title }}</h2>
<p>{{ entry.body }}</p>
{% endfor %}
{% endblock %}
注意,基本模板這裏叫做base.html
。所以,在您的網頁延伸base.html
通過放置{% extends "base.html" %}
。然後,在該頁面中,您只需添加特定block
的內容即可。
這幾乎是我現在所在的位置 - 基本上我的基本模板包含許多用於整個網站的html,每個子頁面的內容中間有一個塊。我現在想要創建一個新頁面,它具有與base.html中相同的徽標,但
中的結構不同。我怎樣才能做到這一點,而無需重複標識代碼? – Sherlock將徽標代碼放在與主內容不同的塊中,並且在擴展時不要覆蓋它。 –
明白 - 我一直沒有正確使用模板系統!謝謝澄清。 – Sherlock