Django开发个人博客网站——9、模板的继承
2022-08-03 09:57:03
109
{{single.collect_count}}

在编程的过程中,我们经常会重复性的写了很多的代码,比如一个页面的框架部分,这样有多少个页面就得写上多少次,这样既不好维护,也不够高效,所以我们引出了html的模板继承部分。

通过观察我的博客:http://www.geerniya.cn/,我们发现,很多页面大体构造都是一样的,因此我们可以将公用的框架作为一个模板,其它页面可以继承自这个模板,然后在其基础上添加上自己的东西。

新建base.html页面

我们在templates下新建一个base页面,将上一节中的index.html页面全部剪切进来。

然后在index.html页面中第一行写下如下,即可将base.html页面完全继承过来。

{% extends 'base.html' %}

当然,我们对base.html页面中非公共部分需要通过block标记出来,比如head中的title,每一个页面的title都不一样,可以通过如下方式进行区分:

<title> {% block title %}{% endblock %} </title>

然后在index.html页面中通过如下方式编辑:

{% block title %}往事如烟的博客{% endblock %}

同样,我们还应当在base.html页面建立content的block,需要注意的是,这个block一定要放在它原先所在的位置

{% block content%}{% endblock %}

然后将class=”content-wrap”中的内容全部剪切到index.html页面中的content block中:

{% block title %}class="content-wrap"...{% endblock %}

当然,还可以添加其它不同的block,哪里有需要的话就可以添加,比如说样式文件,可能某个样式只是用在该页面上,那么只需要在该页面通过block添加到base页面即可。我们这里只需要添加比较少的内容,整体来看,index页面精简了不少:

{% extends 'base.html' %}{% block title %}往事如烟的博客{% endblock %}{% block title %}<div class="content-wrap">...{% endblock %}

——————————————————————————————————————————

项目的完整代码:django_blog
觉得有用的欢迎给个star。

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}