Django 模版中的继承和包含

2023-04-11 00:00:00 继承 包含 模版

Django 模版中的继承和包含是两个常用的功能,它们可以让开发者更加方便和高效地组织网页内容和样式。下面分别介绍一下这两个功能。

继承

继承是 Django 模版中的一种高级功能,它允许一个模版从另一个模版继承内容。这样可以避免重复编写相同的代码,同时也方便维护和修改。使用继承,我们可以把一些通用的 HTML 代码放在基础模版中,然后让其他模版继承这些代码并进行定制。

下面是一个简单的继承范例:

base.html:

<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <header>
        <nav>
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </nav>        
    </header>

    <main>
        {% block content %}
        {% endblock %}
    </main>

    <footer>
        &copy; 2021 pidancode.com
    </footer>
</body>
</html>

子模板(例如 home.html):

{% extends "base.html" %}

{% block title %}Homepage{% endblock %}

{% block content %}
    <h1>Welcome to pidancode.com!</h1>
    <p>This is the home page of our website.</p>
{% endblock %}

在上面的例子中,我们在 base.html 中定义了一个基础模版,包含了网页的头部、导航、页脚以及一个 content 块。在 home.html 中,我们使用 extends 标签来继承 base.html,并使用 block 标签覆盖了 title 和 content 块。这样,当 Django 渲染 home.html 时,它会先渲染 base.html,然后再在相应的 block 标签中填充内容。

包含

包含是 Django 模版中的另一个常用功能,它允许我们在一个模版中包含另一个模版或者一段 HTML 代码。这样可以避免重复编写相同的 HTML 代码,同时也方便维护和修改。

下面是一个简单的包含范例:

nav.html:

<nav>
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</nav>

home.html:

{% include "nav.html" %}

<h1>Welcome to pidancode.com!</h1>
<p>This is the home page of our website.</p>

在上面的例子中,我们把导航的 HTML 代码放在了一个单独的模版 nav.html 中,并使用 include 标签在 home.html 中包含了它。这样,当 Django 渲染 home.html 时,它会先渲染 nav.html,然后再渲染 home.html 中的其他内容。

以上就是 Django 模版中的继承和包含的简单介绍和演示。

相关文章