如何编写将在每个页面上使用的模板,然后包含子模板?

时间:2012-04-14 22:20:49

标签: python django templates themes

我按照Django“第一个应用程序”教程,现在我想知道如何编写整个网站将使用的模板。我可以为每个视图编写模板,但是如何编写将在每个页面上的模板,然后在“内容块”中包含“子模板”?

2 个答案:

答案 0 :(得分:1)

请参阅Django模板文档的Template Inheritance部分。

基本上,您创建一个“基础”模板:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" 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>

并将其保存为(例如)模板目录中的“base.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 %}

答案 1 :(得分:0)

简而言之,您应该编写基本模板,然后扩展此模板。这称为模板继承,并且很好地解释了here