您的位置:首页 > 运维架构 > 网站架构

Django开发个人博客网站——9、模板的继承

2018-02-02 16:48 761 查看
在编程的过程中,我们经常会重复性的写了很多的代码,比如一个页面的框架部分,这样有多少个页面就得写上多少次,这样既不好维护,也不够高效,所以我们引出了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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: