Django模板的继承
- 模板继承可以减少页面内容的重复定义,实现页面内容的重用
- 典型应用:网站的头部、尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义
- block标签:在父模板中预留区域,在子模板中填充
- extends继承:继承,写在模板文件的第一行
- 定义父模板base.html
- 定义子模板index.html
{ % extends "base.html" %}
- 在子模板中使用block填充预留区域
注意说明
- 如果在模版中使用extends标签,它必须是模版中的第一个标签
- 不能在一个模版中定义多个相同名字的block标签
- 子模版不必定义全部父模版中的blocks,如果子模版没有定义block,则使用了父模版中的默认值
- 如果发现在模板中大量的复制内容,那就应该把内容移动到父模板中
- 使用可以获取父模板中block的内容
- 为了更好的可读性,可以给endblock标签一个名字
三层继承结构
- 三层继承结构使代码得到最大程度的复用,并且使得添加内容更加简单
- 如下图为常见的电商页面
1.创建根级模板
- 名称为“base.html”
- 存放整个站点共用的内容
2.创建分支模版
- 继承自base.html
- 名为“base_*.html”
- 定义特定分支共用的内容
- 定义base_goods.html
- 定义base_user.html
- 定义index.html,继承自base.html,不需要写left块
3.为具体页面创建模板,继承自分支模板
- 定义商品列表页goodslist.html
- 定义用户密码页userpwd.html
4.视图调用具体页面,并传递模板中需要的数据
- 首页视图index
- 商品列表视图goodslist
- 用户密码视图userpwd
5.配置url
点击关注发私信(基础视频),即可获取下载链接:
閱讀更多 互聯網奇點 的文章