当前位置 : 主页 > 编程语言 > python >

Django(part14)--模板的继承

来源:互联网 收集:自由互联 发布时间:2022-06-15
学习笔记,仅供参考,有错必纠 模板 模板的继承 模板继承可以使父模板的内容重用,子模板直接继承父模板的全部内容并可以覆盖父模板中相应的块(block). block标签 block标签标识出哪

学习笔记,仅供参考,有错必纠


模板



模板的继承



模板继承可以使父模板的内容重用,子模板直接继承父模板的全部内容并可以覆盖父模板中相应的块(block).



  • block标签
  • block标签标识出哪些块(block)在子模块中是允许被修改的
  • block标签:在父模板中定义,在子模板中覆盖


  • 语法

父模板:

{% block block_name %}
此模板块可以被子模板重新定义的同名块覆盖
{% endblock block_name %}

子模板:

{% extends '父模板名.html' %}
{% block block_name %}
重新定义的同名块
{% endblock %}



  • 图示

Django(part14)--模板的继承_html



举个例子



父模板(father_page1.html)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>首页</title>
<style>
/* 基础样式设置 */
body,h1,h2,h3,h4,h5,h6,p,ul,ol{
margin:0;
padding:0;
border:0;
list-style:none;
}
/* 整体 */
#container{
width:1000px;
margin:0 auto;
}
/* 顶部 */
#top{
width:1000px;
height:100px;
background:yellow;
}
/* 主体 */
#main{
display:flex;
justify-content:space-between;
}
/* 主体左侧 */
#main #main-left{
width:500px;
height:500px;
background:pink;
}
/* 主体右侧 */
#main #main-right{
width:500px;
height:500px;
background:blue;
}
/* 底部 */
#foot{
width:1000px;
height:100px;
background:gray;
}
</style>
</head>
<body>
<!-- 整体 -->
<div id="container">
<!-- 1.顶部 -->
<div id="top">
我是顶部
</div>
<!-- 2.中间主体部分 -->
{% block myBlockName %}
<div id="main">
<h1>父模板的内容</h1>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</div>
{% endblock myBlockName %}
<!-- 3.底部 -->
<div id="foot">
我是底部
</div>
</div>
</body>
</html>

子模板(son_page1.html)

{% extends 'father_page1.html' %}
{% block myBlockName %}
<div id="main">
<h2>Welcome to Anhui University of Finance and Economics</h2>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</div>
{% endblock %}

views.py

def father_page1(request):
return render(request, "father_page1.html")

def son_page1(request):
return render(request, "son_page1.html")

urls.py

urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'father_page1/$', views.father_page1),
re_path(r'son_page1/$', views.son_page1),
]

向http://127.0.0.1:8000/father_page1/发起请求:

Django(part14)--模板的继承_django_02



向http://127.0.0.1:8000/son_page1/发起请求:

Django(part14)--模板的继承_django_03

上一篇:Django(part15)--页面跳转
下一篇:没有了
网友评论