Django框架第十二讲-模板的继承

Django模板的继承

  • 模板继承可以减少页面内容的重复定义,实现页面内容的重用
  • 典型应用:网站的头部、尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义
  • block标签:在父模板中预留区域,在子模板中填充
  • extends继承:继承,写在模板文件的第一行
  • 定义父模板base.html
Django框架第十二讲-模板的继承

  • 定义子模板index.html
Django框架第十二讲-模板的继承

{ % extends "base.html" %}

  • 在子模板中使用block填充预留区域
Django框架第十二讲-模板的继承

注意说明

  • 如果在模版中使用extends标签,它必须是模版中的第一个标签
  • 不能在一个模版中定义多个相同名字的block标签
  • 子模版不必定义全部父模版中的blocks,如果子模版没有定义block,则使用了父模版中的默认值
  • 如果发现在模板中大量的复制内容,那就应该把内容移动到父模板中
  • 使用可以获取父模板中block的内容
  • 为了更好的可读性,可以给endblock标签一个名字
Django框架第十二讲-模板的继承

三层继承结构

  • 三层继承结构使代码得到最大程度的复用,并且使得添加内容更加简单
  • 如下图为常见的电商页面
Django框架第十二讲-模板的继承

1.创建根级模板

  • 名称为“base.html”
  • 存放整个站点共用的内容
Django框架第十二讲-模板的继承

2.创建分支模版

  1. 继承自base.html
  2. 名为“base_*.html”
  3. 定义特定分支共用的内容
  4. 定义base_goods.html
Django框架第十二讲-模板的继承

  • 定义base_user.html
Django框架第十二讲-模板的继承

  • 定义index.html,继承自base.html,不需要写left块
Django框架第十二讲-模板的继承

3.为具体页面创建模板,继承自分支模板

  • 定义商品列表页goodslist.html
Django框架第十二讲-模板的继承

  • 定义用户密码页userpwd.html
Django框架第十二讲-模板的继承

4.视图调用具体页面,并传递模板中需要的数据

  • 首页视图index
Django框架第十二讲-模板的继承

  • 商品列表视图goodslist
Django框架第十二讲-模板的继承

  • 用户密码视图userpwd
Django框架第十二讲-模板的继承

5.配置url

Django框架第十二讲-模板的继承

点击关注发私信(基础视频),即可获取下载链接:

Django框架第十二讲-模板的继承


分享到:


相關文章: