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

本文介绍了如何在Django中利用模板继承来减少重复代码,提高代码复用性。通过创建base.html作为父模板,包含通用部分如header和footer。子模板使用extends标签继承父模板,并通过block标签定义可重写区域。在具体应用中,例如课程机构页面,通过重写title、custom_bread和content来实现不同内容的展示。同时,文章还讨论了如何配置url、views.py以及如何实现数据的向上传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、模板继承

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

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值