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,如需转载请自行联系原作者