假设我要加载的页面的布局是以下形式:
A)
<p>Hello</p> -- varies
<h1>World</h1> -- fixed
<h6>foo</h6> -- varies
b)中
<h2>Hey</h2>
<h1>World</h1>
<h2>bar</h2>
等等,页面的某些部分对所有页面都是通用的(比如带有横幅,搜索框等的部分),但其他部分的布局也不同。
有没有办法组合多个模板而无需将公共部分复制粘贴到每个文件中?
PS:在Win8 PC上使用Django1.7和Python 3.4。
答案 0 :(得分:3)
您可以使用2种解决方案:
1次使用extends
:
定义base.html
模板,如下所示:
<p>{% block var1 %}{% endblock %}</p> -- varies
<h1>World</h1> -- fixed
<h6>{% block var2 %}{% endblock %}</h6> -- varies
并像这样使用base.html
:
a)
:
{% extends "base.html" %}
{% block var1 %}Hello{% endblock %}
{% block var2 %}foo{% endblock %}
b)
:
{% extends "base.html" %}
{% block var1 %}Hey{% endblock %}
{% block var2 %}bar{% endblock %}
2-使用include
:
定义fix.html
:
<h1>World</h1>
并像这样使用它:
a):
<p>Hello</p> -- varies
{% include "fix.html" %}
<h6>foo</h6> -- varies
b):
<p>Hey</p> -- varies
{% include "fix.html" %}
<h6>bar</h6> -- varies