Django 模版中的继承和包含
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> © 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 模版中的继承和包含的简单介绍和演示。
相关文章