下面是一个新闻的模板:mysite/news/templates/news/year_archive.html
mysite/news/templates/news/year_archive.html
{% extends "base.html" %}
{% block title %}Articles for {{ year }}{% endblock %}
{% block content %}
<h1>Articles for {{ year }}</h1>
{% for article in article_list %}
<p>{{ article.headline }}</p>
<p>By {{ article.reporter.full_name }}</p>
<p>Published {{ article.pub_date|date:"F j, Y" }}</p>
{% endfor %}
{% endblock %}
基础模板base.html如下:
mysite/templates/base.html
{% load staticfiles %}
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<img src="{% static "images/sitelogo.png" %}" alt="Logo" />
{% block content %}{% endblock %}
</body>
</html>
year_archive.html模板继承base.html模板
其中base.html模板中定义了基本的结构,然后空出了好多可替换的模块。子模板可以替换这些模块。例如base模板中定义了title是可替换的模块,那么在子模板year_archive中可以通过替换这个title模块达到个性化的目的。base中定义可替换模块是通过" {% block title %}{% endblock %} "来进行定义的。其中title是可替换的模块名称,其他均属于格式要求。如果在子模块中替换的话需要: {% block title %} Articles for {{ year }} {% endblock %} 将基础模板拷贝,然后中间添加上需要替换的内容。其中获取后台传递过来的变量用 " {{}} "将后台传递过来的变量包裹住。