django 模板继承与重写

时间:2021-01-19 14:33:14

1、模板的继承一般用在别人给我们做好的HTML页面,当我们发现有很多的页面都具有相同的部分,这会我们应该考虑怎么能把他们相同的部分给提取出来,提取出来的部分我们作为一个单独的HTML文件叫做base.html,其余不同的部分我们在base.html中用{%block  content%}{%endblock%}留坑

2、当页面1和页面2都继承这个base.html 之后,页面1和页面2也都继承了base.html当中的那个block块,在页面1这个块之间去写页面1与公共部分不同的代码。在页面2这个块之间去写页面2与公共部分不同的代码。后面的每个页面专门去写每个页面不同的部分在这个块之间。就是填坑

3、这样的话,页面1和页面2仅仅需要几行代码就可以完成页面,并且不需要每个页面都去添加公共部分的CSS,JS等静态文件,因为公共部分全是继承于我们base.html页面

在base.html当中,我们需要去加载我们的静态文件

{%load staticfile%}

然后把其中用到的css和js以及图片和a标签,原来的相对路径全部修改为我们项目的路径

{% static  ‘css/base.css’%}

这样的话,我们的base页面就能正常显示了

在页面1和页面2当中,我们需要首先继承这个base页面

第一行写: {%extends  ‘base.html’%}

然后仅仅是需要填坑

{%block content%}

与公共部分不同的代码,写在这。

{%endblock%}

注:如果我们每个页面不同的部分都有自己独立的CSS和JS代码,我们还要多留两个坑,一个用来填写CSS 一个用来填写JS。因此,一般通用的base页面当中,会留4种坑,一个是title里面会留一个,CSS留一个,js留一个,内容部分看有几处留几处。