使用Django加载页面时如何使用多个模板?

时间:2014-10-14 19:25:15

标签: python django django-templates

假设我要加载的页面的布局是以下形式:

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。

1 个答案:

答案 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
相关问题