django中模板继承操作:
模板继承
模板继承允许你建立一个基本的”骨架”模板, 它包含你所有最常用的站点元素 并 定义了一些可以被子模板覆盖的block.
这非常有用,例如各大门户网站左边一般有导航栏,在导航栏点击不同的区域时,只有中间<body>部分的内容更新了,而<body>标签之外的内容没有变。就像博客园一样
如何使用母模板和子模板?
|
1
2
3
4
5
6
7
|
{% block title %}母模板的标题{% endblock %}{% block title %}子模板的标题{% endblock %}{% block content %}{% endblock %}{% block content %} <p>子模板中的内容</p>
{% endblock %} |
模板一般是成对出现的,在母模板中定义好,在子模板中直接套用,只不过需要把
|
1
|
{% block title %}母模板的标题{% endblock %} |
和
|
1
|
{% block content %}{% endblock %} |
中间的内容换成子模板自己的内容即可。
下面看看具体怎么做:
母模板:
base.html
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}母模板{% endblock %}</title>
</head>
<body>
<h1>My helpful timestamp site</h1>
<h1>这行文字是继承母模板的!!!</h1>
{% block content %}{% endblock %}
<hr>
<p>Thanks for visiting my site. </p>
<p>这行文字也是继承母模板的!!!</p>
</body>
</html>
|
子模板
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
{% extends "base.html" %}{% block title %}子模板{% endblock %}{% block content %}<table border="1">
<thead>
<tr>
<th>姓名</th>
<th>邮箱</th>
<th>所属组</th>
</tr>
</thead>
<tbody>
{% for user in data %}
<tr>
<td>{{ user.Name }}</td>
<td>{{ user.Email }}</td>
<td>{{ user.group_list }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %} |
本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1902748,如需转载请自行联系原作者