07 模板的抽象与继承
我们如何实现模板的复用;
一、模板的导入
一个网站中的多个网页,如果有大量重复的内容,我们只需要写一次重复的模板,以后只要重复调用这个模板即可,这样能大大提高开发效率。
调用方法:
在导入模板的时候如果需要传递参数进去,可以使用with关键字。二、模板的抽象
在views里我们可以定义一个抽象的数据字典,数据字典中定义页面中要显示的数据值、静态文件路径,文本内容。
data = {
'index': {'pageindex': 0, 'img': 'img/index.png', 'content': '首页的具体内容'},
'movie': {'pageindex': 2, 'img': 'img/movie.png', 'content': '电影的具体内容'},
'tv': {'pageindex': 1, 'img': 'img/tv.png', 'content': '电视剧的具体内容'},
'cartoon': {'pageindex': 3, 'img': 'img/cartoon.png', 'content': '动画的具体内容'},
}
def index(request):
return render(request, 'index.html', context=data['index'])
def tv(request):
return render(request, 'index.html', context=data['tv'])
def movie(request):
return render(request, 'index.html', context=data['movie'])
def cartoon(request):
return render(request, 'index.html', context=data['cartoon'])
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
<link type="text/css" rel="stylesheet" href="{% static 'css/basic.css' %}">
</head>
<body>
<div>{% include 'header.html' with pageindex=pageindex %}</div>
<div id="big_img">
<div>
<img src="{% static img %}" alt="">
</div>
</div>
<div id="container01">
<div>{{ content }}</div>
</div>
<div>{% include 'footer.html' %}</div>
</body>
</html>
三、模板的继承
为了高效率地加载页面,除了使用include导入页面,也可以使用extend继承之前的页面。
使用方法
使用关键字extend
导入页面。在一个新的html中,只需要使用
{% block 缺口名 %}
后面的继承的新页面如果需要进一步完善就是对这个缺口进行完善。
后续要进行补充的内容,就写在新的html页面的block缺口中