模版继承(母版继承)
模版继承可以创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 blocks 。
<!--设置一个共同的HTML模版(一个HTML文件,base.html)-->
<!--其他的html文档来继承这个公共的母版-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>home</title>
<!--设置block方法,block中包含的内容,在其他html页面继承后可以进行修改,-->
<!--block可以设置多个,可以在页面的任意位置,包括css,js内容-->
{% block style %}
<style>
h1{
background-color: red;
}
</style>
<!--申明block方法的结束-->
{% endblock %}
</head>
<body>
<h1>你好世界</h1>
{% block connect %}
<h1>修改的内容</h1>
{% endblock %}
</body>
</html>
***************************************************
<!--继承页面的写法-->
<!--申明继承于那个页面,必须放在开头的位置-->
{% extends 'base.html' %}
<!--使用block来申明要修改的内容,block后面的变量必须和模板中的一一对应,指定要修改的部分-->
<!--页面中写和母版中名字相同的block块,从而来显示自定义的内容-->
{% block style %}
<style>
h1{
background-color: blue;
}
</style>
{% endblock %}
{% block connect %}
<!--block.super可以显示继承的母版中的block中的内容-->
{{ block.super }}
<h1>修改后的内容</h1>
{% endblock %}
组件
//可以将常用的页面内容如导航条,页尾信息等组件保存在单独的文件中,然后在需要使用的地方,文件的任意位置按如下语法导入即可。
//设置一个组件,就是新建一个html文件,然后在这个文件中封装组件的内容
//组件的意思类似于python中的函数的,在其他地方进行引用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.c1{
background-color: red;
}
</style>
</head>
<body>
<div class="c1">
<span>个人中心</span>
<span>首页</span>
<span>注册</span>
<span>登陆</span>
</div>
</body>
</html>
#**********************************************************
//在其他的html中使用这个组件,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
//使用include方法来引用组件,后面写的是导入那个组件,导入后放到当前引入的位置
//导入组件会导入所有的内容,包括css样式,js代码等,都是放在body标签中,不会影响当签页面的效果
{% include 'index.html' %}
<h1>新项目首页</h1>
</body>
</html>
#**********************************************************
//模版继承和组价的区别:
模版是一个公共模版,是一个底板,其他页面只是修改他的内容,用的还是他的结构,
组件类似一个插件,封装了一些功能,别的页面只是引入使用这些功能,组件中的页面效果,不会影响当前页面中的设置的效果
//www.jq22.com中有一些封装好的插件可以直接使用