Django模板——模板继承

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django模板——模板继承相关的知识,希望对你有一定的参考价值。

-- Django模板的继承

1.意义:减少页面的重复定义,实现页面内容的重用;

2.block标签:在父模板中挖坑,填写通用的内容;

{% block content1 %}  # content1是给坑起的名字,容易辨识;

... 填写通用内容;

{% endblock content1%}

3.extends标签:继承父模板的内容,将父模板坑中的通用的内容填到子模板中;

{% extends booktest/base.html%}  # 继承父模板内容;

 

-- 实际应用模型

-- 父类模板

# 拥有页面的头部与底部;

<!DOCTYPE html>
<html>
<head>
<title>父模板</title>
{% block head%}
{% endblock %}
</head>
<body>
 
{% block content1 %}
<h1>这里是一个坑!~~~~~~</h1>
{% endblock content1%}
<hr>
<h1>contact</h1>
</body>
</html>


-- 首页.html

# 仅继承父模板的头部与底部,没有其他会被共用的部分;

{% extends ‘booktest/base.html‘%}


-- 用户页面.html

# 在继承父模板的头部与底部之外,

# 还有一个会被共用的左侧,右侧由两个页面分别来展示分类与内容;

# 所以,在父模板的坑里填写左侧相同部分,以及在右侧再挖一个坑;

{% extends ‘booktest/base.html‘ %}
{% block content1 %}
<table border=‘1‘>
<tr>
<td height=‘300‘>用户导航</td>
<td>{% block content2%}{% endblock%}</td>
<!-- 再挖一个坑,给下级填写 -->
</tr>
</table>
{% endblock%}


-- 用户分类页.html(user1.html)

# 继承上一个用户页面;

# 同时,填用户页面右侧的坑;

{% extends ‘booktest/base_user.html‘ %}
{% block content2%}
<h1>我来填坑!右侧可以变动的内容1!</h1>
{% endblock content2%}


-- 用户内容也.html(user2.html)

# 继承上一个用户页面;

# 同时,填用户页面右侧的坑;

{% extends ‘booktest/base_user.html‘ %}
{% block content2%}
<h1>我来填坑!右侧可以变动的内容2!</h1>
{% endblock content2%}


-- 需要添加的视图函数(views.py)

def inherit(request):
# 首页
return render(request, ‘booktest/next.html‘)
 
def base_user(request):
# 用户页面
return render(request, ‘booktest/base_user.html‘)
 
def user1(request):
# 用户页——分类页
return render(request, ‘booktest/user1.html‘)
 
def user2(request):
# 用户页——内容页
return render(request, ‘booktest/user2.html‘)


-- URLconf配置

url(r‘^next/$‘, views.inherit),
url(r‘^base_user/‘, views.base_user),
url(r‘^user1/‘, views.user1),
url(r‘^user2/‘, views.user2),


-- 页面展示情况

 # 看附件!


以上是关于Django模板——模板继承的主要内容,如果未能解决你的问题,请参考以下文章

Django中模板总结[模板语言,模板继承,CSRF攻击,反向解析]

javascript模板继承

Django(十五)模板详解:模板标签过滤器模板注释模板继承html转义

[py]django模板继承

Python学习---django模板继承180123

使用 Django 模板作为片段