模板继承

转载

Django模版引擎中最强大也是最复杂的部分就是模版继承了。模版继承可以让您创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 blocks 

创建模板:

 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        {% block style %}
        .c1{
            background-color: red;
            height: 200px;
            width: 200px;
        }
        {% endblock %}
    </style>
</head>
<body>

<div class="c1">
    {% block content %}
    <p>这是模板</p>
    {% endblock %}
</div>

</body>
</html>
 
1
2
3
4
5
{% block content %}
    <p>这是模板</p>
{% endblock %}
 
凡是被大括号包裹的内容表示,该模板被继承后这个内容可以自定义

继承模板:

 
<!--继承模板,必须写在最上面-->
{% extends '模板.html' %}

{% block style %}
    .c1{
        background-color: yellow;
        height: 100px;
        width: 100px;
    }
{% endblock style %}

{% block content %}

    <!--保留模板内容-->
     {{ block.super }}

    <p>继承后重写样式</p>

{% endblock content %}
 

根据名字指定到哪里结束,使用block.super可以保留模板内容

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

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

   在大型模版中,这个方法帮你清楚的看到哪一个  {% block %} 标签被关闭了。

  • 不能在一个模版中定义多个相同名字的 block 标签。
posted @ 2019-05-23 20:14  AnthonyWang  阅读(117)  评论(0编辑  收藏  举报