Django模板中如何使用include和extends包含和继承模板

2023-04-09 00:00:00 模板 继承 如何使用

Django中使用include和extends来包含和继承模板。

使用include包含模板可以让你将一个模板文件放入另一个模板文件中,实现代码复用,如下所示:

在父模板(parent.html)中添加以下内容:

<!DOCTYPE html>
<html>
<head>
    <title>Parent template</title>
</head>
<body>
    <h1>Parent template</h1>
    {% block content %}
    {% endblock %}
</body>
</html>

在子模板(child.html)中添加以下内容:

{% extends 'parent.html' %}

{% block content %}
    <h2>Child template</h2>
    <p>This is child template content.</p>
{% endblock %}

在子模板中我们使用extends指令指明继承哪个模板。子模板可以覆盖父模板中的block块,这里我们覆盖了父模板中的content块,添加了子模板的内容。使用include指令包含模板,将子模板中的内容插入到父模板的content块中。

在使用include时,可以将要包含的模板文件的名称传递给include指令,如下所示:

{% include "header.html" %}

这里我们将header.html包含到当前模板中。

下面是一个完整的包含和继承模板的例子:

在父模板(base.html)中添加以下内容:

<!DOCTYPE html>
<html>
<head>
    <title>Base template</title>
</head>
<body>
    <header>
        {% include "header.html" %}
    </header>
    <main>
        {% block content %}
        {% endblock %}
    </main>
    <footer>
        {% include "footer.html" %}
    </footer>
</body>
</html>

在子模板(index.html)中添加以下内容:

{% extends 'base.html' %}

{% block content %}
<h1>Welcome to pidancode.com</h1>
<p>皮蛋编程是一个优秀的编程社区,欢迎您的加入。</p>
{% endblock %}

这里我们通过extends指令指定了要继承的base.html文件,子模板中只有一个content块,覆盖了父模板中的content块,添加了子模板的内容。在父模板中使用include指令包含了header.html和footer.html文件,实现了代码复用。

相关文章