做过web station的朋友应该知道,网页中常会有大量的冗余代码。
比较传统的方法是把相同的代码单独写在一起。
然后在用include加载到实际的页面中。
django中{% include %}就起到这个作用,不过通常情况下并不这样用
更有效的方法是使用模板继承,简单来说,需要先写一个包含所有共用代码的模板作为父模板,然后实际的网页继承父模板,并体现其不同的地方。
这里是父模板,base.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<h1>My helpful timestamp site</h1>
{% block content %}{% endblock %}
{% block footer %}
<hr>
<p>Thanks for visiting my site.</p>
{% endblock %}
</body>
</html>
在父模板中<% block *** %><% endblock %>之间的内容是子模板中可以编辑的部分,而在父模板的内容是默认设置,其他部分是共用代码。
实际页面,current_date.html
{% extends "base.html" %}
{% block title %}The current time{% endblock %}
{% block content %}
<p>It is now {{ current_date }}.</p>
{% endblock %}
{% block footer %}
{{ block.super }}
<p> Thanks </p>
{% endblock %}
<% extends %>指名要继承的父模板。
{{ block.super }}代表父模板中的默认设置,常在