7-1-2 django在线教育平台----django templates模板继承

一、模板继承

一般的.,网站模板的设计时,网站有一些部分是通用的,比如 导航,底部,访问统计代码等,为了大码的重复,需要做合理的规划,减少工作量,同时也使得凌乱、难以阅读的静态页面布局变得优雅。在构建页面的时候,可以写一个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,这就是向上传递

这里写图片描述

猜你喜欢

转载自blog.csdn.net/f1ngf1ngy1ng/article/details/81045481