django 模板的继承

Posted

tags:

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

django中模板继承操作:


模板继承

模板继承允许你建立一个基本的”骨架”模板, 它包含你所有最常用的站点元素 并 定义了一些可以被子模板覆盖的block.

这非常有用,例如各大门户网站左边一般有导航栏,在导航栏点击不同的区域时,只有中间<body>部分的内容更新了,而<body>标签之外的内容没有变。就像博客园一样

技术分享


如何使用母模板和子模板?

{% block title %}母模板的标题{% endblock %}
{% block title %}子模板的标题{% endblock %}

{% block content %}{% endblock %}
{% block content %}
    <p>子模板中的内容</p>
{% endblock %}

模板一般是成对出现的,在母模板中定义好,在子模板中直接套用,只不过需要把

{% block title %}母模板的标题{% endblock %}

{% block content %}{% endblock %}

中间的内容换成子模板自己的内容即可。

下面看看具体怎么做:

母模板:

base.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}母模板{% endblock %}</title>
</head>
<body>
    <h1>My helpful timestamp site</h1>
    <h1>这行文字是继承母模板的!!!</h1>
    {% block content %}{% endblock %}
    <hr>
    <p>Thanks for visiting my site. </p>
    <p>这行文字也是继承母模板的!!!</p>
</body>
</html>

子模板

{% extends "base.html" %}
{% block title %}子模板{% endblock %}
{% block content %}
<table border="1">
    <thead>
    <tr>
        <th>姓名</th>
        <th>邮箱</th>
        <th>所属组</th>
    </tr>
    </thead>
    <tbody>
    {% for user in data %}
    <tr>
        <td>{{ user.Name }}</td>
        <td>{{ user.Email }}</td>
        <td>{{ user.group_list }}</td>
    </tr>
    {% endfor %}
    </tbody>
</table>
{% endblock %}

技术分享



本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1902748

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

模板继承不起作用 - Django 教程

使用 Django 模板作为片段

如何在 Django 中显式重置模板片段缓存?

在 Django 模板中标记或继承相同的代码,并进行细微的更改

[py]django模板继承

Django 模板继承