Django HTML 模板继承
在Django中,HTML模板可以通过继承机制来共享相同的基础模板内容。以下是一个简单的例子:
首先,创建一个基础模板 base.html
:
<!-- base.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}My Site{% endblock %}</title>
</head>
<body>
<header>
<!-- 头部内容 -->
</header>
{% block content %}
<!-- 这里是具体页面内容的占位符 -->
{% endblock %}
<footer>
<!-- 脚部内容 -->
</footer>
</body>
</html>
然后,创建一个继承自 base.html
的子模板 home.html
:
<!-- home.html -->
{% extends 'base.html' %}
{% block title %}Home Page{% endblock %}
{% block content %}
<!-- 只需要在这里填充具体的内容 -->
<h1>Welcome to the Home Page</h1>
<p>This is the main page of our site.</p>
{% endblock %}
在 views.py
中,你可以指定渲染的模板:
# views.py
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
这样,当访问 home 页面时,Django 会首先加载 base.html
作为模板基础,然后替换 home.html
中定义的 block
内容,最终生成完整的 HTML 页面。这样做可以减少大量的重复代码,使得模板的维护和扩展更加方便。
评论已关闭