django html嵌套
时间: 2023-10-10 20:09:42 浏览: 121
Django3.2中文开发手册(html离线版)
在 Django 中,可以在 HTML 模板中嵌套其他模板或 HTML 片段,这样可以更好地组织和重用代码。以下是一些示例:
1. 使用 `{% include %}` 标签嵌套模板:
```html
<!-- base.html -->
<html>
<head>
<title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
<!-- index.html -->
{% extends 'base.html' %}
{% block title %}Homepage{% endblock %}
{% block content %}
<h1>Welcome to my homepage!</h1>
{% include 'latest_posts.html' %}
{% endblock %}
```
在上面的示例中,`base.html` 定义了一个基本的 HTML 结构,并定义了两个块 `{% block title %}` 和 `{% block content %}`。`index.html` 继承了 `base.html`,并覆盖了 `{% block title %}` 块,同时在 `{% block content %}` 块中包含了 `latest_posts.html`。
2. 使用 `{% block %}` 标签嵌套 HTML 片段:
```html
<!-- base.html -->
<html>
<head>
<title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
<!-- index.html -->
{% extends 'base.html' %}
{% block title %}Homepage{% endblock %}
{% block content %}
<h1>Welcome to my homepage!</h1>
<div class="latest-posts">
{% block latest_posts %}
<h2>Latest Posts</h2>
<ul>
<li>Post 1</li>
<li>Post 2</li>
<li>Post 3</li>
</ul>
{% endblock %}
</div>
{% endblock %}
```
在上面的示例中,`index.html` 继承了 `base.html`,并覆盖了 `{% block title %}` 块,同时定义了一个新的块 `{% block latest_posts %}`,并在其中包含了 HTML 片段。在 `base.html` 中,`{% block content %}` 块包含了 `{% block latest_posts %}` 块,因此在 `index.html` 中可以重写 `{% block latest_posts %}` 块,并在其中定义新的 HTML 片段。
以上两种方式都可以嵌套其他模板或 HTML 片段,具体使用哪种方式取决于自己的需求和习惯。
阅读全文