码迷,mamicode.com
首页 > 其他好文 > 详细

Django模板——模板继承

时间:2017-10-11 22:33:42      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:模板继承

-- 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),


-- 页面展示情况

 # 看附件!


Django模板——模板继承

标签:模板继承

原文地址:http://13269293.blog.51cto.com/13259293/1971529

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!