-- Django模板的继承
1.意义:减少页面的重复定义,实现页面内容的重用;
2.block标签:在父模板中挖坑,填写通用的内容;
{% block content1 %} # content1是给坑起的名字,容易辨识;
... 填写通用内容;
{% endblock content1%}
3.extends标签:继承父模板的内容,将父模板坑中的通用的内容填到子模板中;
{% extends ‘booktest/base.html’%} # 继承父模板内容;
-- 实际应用模型
-- 父类模板
# 拥有页面的头部与底部;
<!DOCTYPE html>
<html>
<head>
<title>父模板</title>
{% block head%}
{% endblock %}
</head>
<body>
{% block content1 %}
<h1>这里是一个坑!~~~~~~</h1>
{% endblock content1%}
<hr>
<h1>contact</h1>
</body>
</html>-- 首页.html
# 仅继承父模板的头部与底部,没有其他会被共用的部分;
{% extends ‘booktest/base.html‘%}-- 用户页面.html
# 在继承父模板的头部与底部之外,
# 还有一个会被共用的左侧,右侧由两个页面分别来展示分类与内容;
# 所以,在父模板的坑里填写左侧相同部分,以及在右侧再挖一个坑;
{% extends ‘booktest/base.html‘ %}
{% block content1 %}
<table border=‘1‘>
<tr>
<td height=‘300‘>用户导航</td>
<td>{% block content2%}{% endblock%}</td>
<!-- 再挖一个坑,给下级填写 -->
</tr>
</table>
{% endblock%}-- 用户分类页.html(user1.html)
# 继承上一个用户页面;
# 同时,填用户页面右侧的坑;
{% extends ‘booktest/base_user.html‘ %}
{% block content2%}
<h1>我来填坑!右侧可以变动的内容1!</h1>
{% endblock content2%}-- 用户内容也.html(user2.html)
# 继承上一个用户页面;
# 同时,填用户页面右侧的坑;
{% extends ‘booktest/base_user.html‘ %}
{% block content2%}
<h1>我来填坑!右侧可以变动的内容2!</h1>
{% endblock content2%}-- 需要添加的视图函数(views.py)
def inherit(request): # 首页 return render(request, ‘booktest/next.html‘) def base_user(request): # 用户页面 return render(request, ‘booktest/base_user.html‘) def user1(request): # 用户页——分类页 return render(request, ‘booktest/user1.html‘) def user2(request): # 用户页——内容页 return render(request, ‘booktest/user2.html‘)
-- URLconf配置
url(r‘^next/$‘, views.inherit), url(r‘^base_user/‘, views.base_user), url(r‘^user1/‘, views.user1), url(r‘^user2/‘, views.user2),
-- 页面展示情况
# 看附件!
原文:http://13269293.blog.51cto.com/13259293/1971529