Django 模板中的“{% extends %}”与“{% include %}”

pythonDjango

1个回答

写回答

Ryanzekai

2025-06-23 13:25

+ 关注

Django
Django

Django模板中的"{% extends %}"与"{% include %}"的使用

Django框架中,模板语言是一种方便生成HTML的工具。它允许开发人员将Python代码与HTML页面相结合,以便更好地组织和呈现动态内容。在模板中,"{% extends %}"和"{% include %}"是两个非常有用的标签,可以帮助我们更好地管理模板的结构和重用。

"{% extends %}"标签用于创建一个基础模板,该模板定义了整个网站或应用程序的基本结构。通过继承基础模板,我们可以在衍生模板中只关注特定的内容,而无需重复编写整个页面的结构。

下面是一个简单的示例,展示了如何使用"{% extends %}"标签:

html

<!-- base.html -->

<!DOCTYPE html>

<html>

<head>

<title>My Website</title>

</head>

<body>

<header>

<h1>Welcome to My Website</h1>

</header>

<div class="content">

{% block content %}

{% endblock %}

</div>

<footer>

? 2021 My Website. All rights reserved.

</footer>

</body>

</html>

html

<!-- page.html -->

{% extends 'base.html' %}

{% block content %}

<h2>Page Title</h2>

<img src="https://img.izhida.com/topic/a7f5f35426b927411fc9231b56382173.jpg" alt="Python"><br>Python

This is the content of the page.

{% endblock %}

在上面的例子中,我们创建了一个基础模板"base.html",其中包含了整个网站的基本结构,包括头部、内容区域和页脚。然后,我们创建了一个衍生模板"page.html",通过"{% extends %}"标签继承了基础模板。在衍生模板中,我们使用"{% block %}"标签定义了一个名为"content"的块,用于插入特定页面的内容。这样,我们只需要关注页面内容的编写,而无需重复编写整个页面的结构。

"{% include %}"标签用于将其他模板文件包含到当前模板中,以实现模板的重用。通过这种方式,我们可以将通用的模块提取出来,然后在多个模板中引用,避免了重复的代码编写。

下面是一个简单的示例,展示了如何使用"{% include %}"标签:

html

<!-- sidebar.html -->

<div class="sidebar">

<h3>Navigation</h3>

<ul>

<li>Home</li>

<li>About</li>

<li>Contact</li>

</ul>

</div>

html

<!-- page.html -->

{% extends 'base.html' %}

{% block content %}

<h2>Page Title</h2>

This is the content of the page.

{% include 'sidebar.html' %}

{% endblock %}

在上面的例子中,我们创建了一个名为"sidebar.html"的模板文件,其中定义了一个简单的侧边栏。然后,在"page.html"模板中使用"{% include %}"标签将侧边栏模板包含进来。这样,我们就可以在多个页面中重复使用同一个侧边栏模板,而无需在每个页面中重复编写相同的代码。

通过使用"{% extends %}"和"{% include %}"这两个标签,我们可以更好地组织和重用Django模板,提高开发效率,并保持代码的可读性和可维护性。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号