一、模板继承
一般的.,网站模板的设计时,网站有一些部分是通用的,比如 导航,底部,访问统计代码等,为了大码的重复,需要做合理的规划,减少工作量,同时也使得凌乱、难以阅读的静态页面布局变得优雅。在构建页面的时候,可以写一个base.html来包含(include)这些通用文件
我们只是继承母版中的一部分,比如header之类的
二、django模板继承
在本系统中,重复的部分如下header和footer,可以通过在其他模板中继承来实现这部分,如同子类继承父类,而不用重复写代码,继承用extends标签
但是登录和注册按钮这块在登录和未登录情况下会有不同,所以不是完全继承,在变化的部分用block标签表示,继承后的模板可以改变block中的内容
也就是不变的部分用extends直接继承过来,需要变化的部分用block在子模板中重写
三、重写模板
本系统中课程机构页面主要分为头部、中间、尾部三个部分,不变的部分是头部和尾部即header和footer,变化的部分是header中的title和中间部分的custom_bread、content
新建base.html,在继承之后可以重写的地方有title、custom_bread、content
新建org-list.html,需要变化的中间content和title部分,测试中可以看到效果
测试
为页面配置url
在index.html配置授课机构url
编写views.py
重启项目
四、向上传递
下图中如果register.html继承自base.html,那么在base.html中也能使用传过来的register_form,这就是向上传递