django 模板继承与重写
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留一个,内容部分看有几处留几处。
最新文章
- Windows 10不能拨L2TP协议的VPN
- 在Ubuntu上安装Mysql For Python
- angularjs + seajs构建Web Form前端(三) -- 兼容easyui
- JS数组追加数组采用push.apply的坑
- Rhel6-tomcat+nginx+memcached配置文档
- Android 介绍spydroid每个包的大体功能
- MyEclipse 2015 如何使项目能够使用 Hibernate自动生成文件
- NodeJS 中npm包管理工具
- spring 集成redis客户端jedis(java)
- python生成器中yield和send分析
- 第三十七篇-BottomNavigationVIew底部导航的使用
- 20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算
- 重建控制文件报错 ORA-01503 ORA-01192
- Python Day-1 练习
- Mac下使用Wine安装PowerDesigner15
- Centos7升级gcc学习笔记 gcc 4.8.5 ->; gcc 5.4.0
- Vue数组操作不刷新视图问题的解决
- android开发中一个activity如何调用另一个xml中的控件
- android_orm框架之greenDAO(一)
- VC++学习之多线程(2)