是的,有一种模式完全符合您的需求。在 DJANGO 中称为模板继承。
您基本上将拥有一个带有标题、徽标和主要内容占位符的基本模板。类似的东西(从我上面放置的链接中提取):
<!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
.