一、模板继承

一般的.,网站模板的设计时,网站有一些部分是通用的,比如 导航,底部,访问统计代码等,为了大码的重复,需要做合理的规划,减少工作量,同时也使得凌乱、难以阅读的静态页面布局变得优雅。在构建页面的时候,可以写一个base.html来包含(include)这些通用文件

我们只是继承母版中的一部分,比如header之类的

二、django模板继承

在本系统中,重复的部分如下header和footer,可以通过在其他模板中继承来实现这部分,如同子类继承父类,而不用重复写代码,继承用extends标签

但是登录和注册按钮这块在登录和未登录情况下会有不同,所以不是完全继承,在变化的部分用block标签表示,继承后的模板可以改变block中的内容

也就是不变的部分用extends直接继承过来,需要变化的部分用block在子模板中重写

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

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

三、重写模板

本系统中课程机构页面主要分为头部、中间、尾部三个部分,不变的部分是头部和尾部即header和footer,变化的部分是header中的title和中间部分的custom_bread、content

新建base.html,在继承之后可以重写的地方有title、custom_bread、content

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

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

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

新建org-list.html,需要变化的中间content和title部分,测试中可以看到效果

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

测试

为页面配置url

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

在index.html配置授课机构url

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

编写views.py

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

重启项目

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

四、向上传递

下图中如果register.html继承自base.html,那么在base.html中也能使用传过来的register_form,这就是向上传递

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

相关文章:

  • 2021-07-18
  • 2022-01-16
  • 2021-08-23
  • 2022-12-23
  • 2021-04-23
  • 2021-10-26
  • 2022-01-17
  • 2022-12-23
猜你喜欢
  • 2021-12-29
  • 2021-12-19
  • 2021-12-19
  • 2021-12-19
  • 2021-12-19
  • 2021-12-19
  • 2021-12-19
相关资源
相似解决方案