Django之模板继承

为了在Django模板配置中减少代码的冗余,需使用模板继承1.语法2.步骤(1)创建一个base.html把需要显示的页面内容写在里面(2)在title部分写个盒子,以后谁来扩展就在这里面

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

  为了在Django模板配置中减少代码的冗余,需使用模板继承

1. 语法

{% block classinfo %}
{% endblock}

2. 步骤

(1)创建一个base.html把需要显示的页面内容写在里面

(2)在title部分写个盒子,以后谁来扩展就在这里面添加相应的内容,即完成title.html

<title>
    {% block title %}
    {% endblock %}
</title>

(3)创建一个title.html,让title.html继承base.html

{%extends "base.html"%} #必须放在首行

  继续添加内容:

{%block title%}blog titles{%endblock%}

(4)也可以分别在base.html或title.html中写好多盒子,方法同上

{%load staticfiles%}
<!DOCTYPE html>
<html lang="zh-cn">
    <head>
        <meta http-equiv="X-UA_compatible" content="IE=Edge">
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>
            {%block title%}
            {%endblock%}
        </title>
        <link rel="stylesheet" href="{% static 'css/bootstrap.css'%}">
    </head>
    <body>
        {%include 'header.html'%}
        <div class="container">
            {%block content%}
            {%endblock%}
        </div>
        {%include 'footer.html'%}
        {% block javascritp%}{%endblock%}
    </body>
</html>

注意:盒子里面可以又默认的内容,如果又默认的时候你不扩展就走默认的,如果你扩展了,就替换了,如果要实现不替换直接在后面追加的话,可以使用{% block.super%}方法

{% block menu %}

  {{ block.super }}

  <p>!!!</p>       #先继承父类的,后插入数据

{% endblock %}

3. 总结

(1)模板继承围绕两点:继承和扩展,有什么继承什么,扩展的是盒子

(2)模板中设置的盒子越多越好,因为这样你想扩展的时候就扩展,不想扩展的时候就不扩展了

(3)为了更好的可读性,你也可以给你的{% endblock %}标签一个名字,例如:

{% block content %}
...
{% endblock content %} 

(4)不能在一个模板中使用多个相同名字的block标签

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120066.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 苹果手机绕ID解锁_怎么绕过id

    苹果手机绕ID解锁_怎么绕过id小伙伴们注意:公众号的推送机制不再按照时间前后推送了,微信公众号信息流乱序。君哥建议大家把科技毒瘤君公众号置顶(设为星标⭐),以便第一时间看到推送,非常感谢~,方法如下图:记得我写过几篇…

    2022年9月22日
    4
  • VUE组件封装_vue使用组件

    VUE组件封装_vue使用组件什么是组件化:组件化就是将一个页面拆分成一个个小的功能模块,每个功能模块完成属于自己这部分独立的功能,使得整个页面的管理和维护变得非常容易。Vue组件化思想 组件化是Vue中的重要思想,当我们对vue的基本知识有了一定的基础就要开始封装组件了 它提供了一种抽象,让我们可以开发出一个个独立可复用的小组件来构造我们的应用。组件树。组件化思想的应用 1.在项目中充分利用组件化的思想 2.尽可能的将也页面拆分成一个个小的可复用的组件 3.好处:代码更加方便组织和管理,扩展性也更强一.注

    2022年9月23日
    2
  • Anaconda在PowerShell中无法使用activate激活环境

    Anaconda在PowerShell中无法使用activate激活环境Anaconda在PowerShell中无法使用activate激活环境并且使用AnacondaNavigator管理器也是可以成功激活环境的:但是问题来了:我在windows自带的WindowsPowerShell里使用activate命令切换环境时,命令明明已经成功执行,但却没有成功切换环境,如图:经过…

    2022年7月14日
    25
  • 六大算法之动态规划_leetcode迷宫最短路径

    六大算法之动态规划_leetcode迷宫最短路径在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足:nums1[i] == nums2[j]且绘制的直线不与任何其他连线(非水平线)相交。请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。以这种方法绘制线条,并返回可以绘制的最大连线数。示例 1:输入:nums1 = [1,4,2], nums2 = [1,2,4]输出:2解释:可以画出两条不交叉的

    2022年8月9日
    5
  • 常驻内存以及如何避免内存泄漏

    常驻内存以及如何避免内存泄漏

    2022年2月13日
    45
  • linux配置虚拟IP地址方法「建议收藏」

    linux配置虚拟IP地址方法「建议收藏」linux配置虚拟IP地址方法在日常linux管理工作中,需要为应用配置单独的IP地址,以达到主机与应用的分离,在应用切换与迁移过程中可以做到动态切换,特别是在使用HA的时候,这种方案可以保证主机与应用的隔离,对日常的运维有很大的益处.但在有些应用中还没有配置HA,后期需要配置HA时,我们可以先配置虚拟IP给在线的应用使用,这要后期的系统运维可以做到更好的可扩展性.本文主要是对IP地址

    2022年10月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号