共享模板的使用
之前说到index.html和post.html中有很多重复的内容,如果要修改布局两个网页都要修改,这就很麻烦。因此,把每一个页面共同的部分独立出来成为另一个文件,才是正确的做法。
文件名 | 用途说明 |
---|---|
base.html | 网站的基础模板,提供网站的主要设计、外观风格 |
header.html | 网站中每一个网页共享的标题元素,通常是放置网站logo的地方 |
footer.html | 网站中每一个网页的共享页尾,用来放置版权声明或其他参考信息 |
index.html | 此范例网站的首页 |
post.html | 范例网站用来展示单篇文章的页面 |
base.html的内容
{# base.html #}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
{% block title %}{% endblock %}
</title>
</head>
<body>
{% include 'header.html' %}
{% block headmessage %}{% endblock %}
<hr>
{% block content %}{% endblock %}
<hr>
{% include 'footer.html' %}
</body>
</html>
index.html的内容
{# index.html #}
{% extends 'base.html' %}
{% block title %}欢迎光临我的博客{% endblock %}
{% block headmessage %}
<h3>本站文章列表</h3>
{% endblock %}
{% block content %}
{% for post in posts %}
<p>
<a href="/post/{
{ post.slug }}">{
{ post.title }}</a>
</p>
{% endfor %}
{% endblock %}
post.html的内容
{% extends 'base.html' %}
{% block title %}{
{ post.title }} - 文学天地{% endblock %}
{% block headmessage %}
<h3>{
{ post.title }}</h3>
<a href="/">回首页</a>
{% endblock %}
{% block content %}
<p>{
{ post.body }}</p>
{% endblock %}
header.html的内容
<h1>欢迎光临 文学天地</h1>
footer.html的内容
{% block footer %}
{% if now %}
<p>现在时刻:{
{ now }}</p>
{% else %}
<p>本文内容