Django中模板的继承

继承模板继承的了解

在同一个网页中有多个选项栏,不同的子网页中除了主体内容不一样,其网页的上面和下面部分还是一样的,如下图点击‘电影’栏和‘电视剧’栏后发现只有主体内容发生改变,如果要实现这俩个网页完全可以重复的敲页面中的非主体内容,但是如果要修改页面内容则需要重复的修改n次,’继承‘的出现解决了这个问题。

 模板继承的学习

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

语法—父模板中:

                1.定义父模板中的块block标签

                2.标识出哪些在子模版中是允许被修改的

                3.block标签:在父模板中定义,可以在子模版中覆盖

语法—子模版中:

                1.继承模板extends标签(写在模板文件的第一行

                        例如{% entends ‘base.html' %}

                2.子模版 重写父模板中的内容快

                        {% block block_name %}

                        子模版用来覆盖父模板中 block_name 块的内容

                        {% endblock blocl_name%}   (切记一定要写endblock)

举例实现

在urls中先定义方法:

def base_view(request):

    return render(request, 'base.html')

def music_view(request):

    return render(request, 'music.html')

def sport_view(request):

    return render(request, 'sport.html')

实现主页面base.html页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    {% block mytitle %}  # 定义继承,子模块中的标题可以修改
    <title>主页</title>
    {% endblock %}
</head>
<body>

<a href="/music_index">音乐频道</a>
<a href="/sport_index">体育频道</a>

<br>
{% block info %}
这是主页
{% endblock %}
<br>

<h3>有任何问题联系:10083</h3>

</body>
</html>

实现子模块music.html页面

{% extends 'base.html' %} # 继承父模块的标识

{% block mytitle %}
    <title>音乐频道</title>
{% endblock %}

{% block info %}
    欢迎来到音乐频道
{% endblock %}

实现子模块sport.html页面

{% extends 'base.html' %} # 继承父模块的标识

{% block mytitle %}
    <title>体育频道</title>
{% endblock %}

{% block info %}
    欢迎来到体育频道
{% endblock %}

在urls中添加path路径:

path('base_index',views.base_view),
path('music_index',views.music_view),
path('sport_index',views.sport_view)

实现页面如下:

 

 

 总结:Django模板的继承是一个很实用的方法,希望这篇文章对你有啊帮助

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值