- 创建基础模板:
基础模板通常包含页面的 HTML 结构,如doctype
、html
、head
和body
标签,以及一些公共的 HTML 块,比如导航栏和页脚。
<!-- base.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}My Site{% endblock %}</title>
</head>
<body>
<header>
<!-- 公共头部内容 -->
</header>
<div id="content">
{% block content %}
<!-- 默认内容 -->
{% endblock %}
</div>
<footer>
<!-- 公共页脚内容 -->
</footer>
</body>
</html>
- 创建子模板:
子模板继承基础模板,并可以填充或重写基础模板中定义的块(block)。
<!-- home.html -->
{% extends "base.html" %}
{% block title %}Home Page{% endblock %}
{% block content %}
<h1>Welcome to the Home Page</h1>
<p>This is the home page of my site.</p>
{% endblock %}
在这个例子中,home.html
继承了 base.html
,并重写了 title
和 content
块。
- 使用子模板:
在你的视图中,你可以像使用普通模板一样使用子模板。
# views.py
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
- 模板中的高级继承:
你可以在子模板中进一步继承另一个模板,或者在一个模板中使用多个继承。
<!-- base_with_sidebar.html -->
{% extends "base.html" %}
{% block content %}
<div class="main">
{% block main_content %}
<!-- 默认主内容 -->
{% endblock %}
</div>
<div class="sidebar">
{% block sidebar %}
<!-- 默认侧边栏内容 -->
{% endblock %}
</div>
{% endblock %}
然后你可以创建一个继承 base_with_sidebar.html
的模板,并填充 main_content
和 sidebar
块。
<!-- post_detail.html -->
{% extends "base_with_sidebar.html" %}
{% block title %}Post Detail{% endblock %}
{% block main_content %}
<h1>{{ post.title }}</h1>
<p>{{ post.content }}</p>
{% endblock %}
{% block sidebar %}
<p>Here is some sidebar content.</p>
{% endblock %}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
- 最新
- 最热
只看作者