模板继承的应用场景
通常一个网站的某几个页面都有一些公共的布局,如导航栏、侧边栏和页脚的一些地方,如果将这些公共的部分抽离出来,放在一个单独的 html 页面中用于给其他页面继承,就称它为父版,而继承父版的页面就称为子版,同一个父版可以被多个子版继承。
子版中可以继承父版的内容和属性,这样可以使得页面更加简洁,而且在子版中可以修改母版中的部分内容。
模板继承中用到的内置标签
{% load %} #加载django的标签库
{% static static_path %} #读取静态资源
{% extends base_template%} #继承模版
{% block data%} {% endblock %} #在父版中定义模块,在子版中重写父模中定义的模块
一个简单的模板继承实例
1.以 bootstrap 框架为例,去官网下载所需要的静态文件,同时在项目根路径下新建一个 static 文件夹,将下载好的静态文件放入到里面。
2.在 settings.py 里面加入以下代码,配置静态文件路径。
STATICFILES_DIRS
3.在 bootstrap 找一组组件进行练习,我这里找了一组导航条,将里面的代码复制到 base.html (父版)中,同时添加以下两句代码
<
4.打开 index.html (子版),继承父版中的内容
{
5.运行代码,在浏览器中打开子页面,可以看到父版中的内容和格式都被继承过来了。
6.在子版中修改父版的属性:之前父版中有定义两个模块 title 和 style ,现在在子版中重写一下。
7.在浏览器中刷新页面,可以看到父版中的内容依然被继承过来,而刚刚重写的两个模块也得到了应用。