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