Jinja2 的模板继承的特点,这允许我们把所有模板公共的部分移除出页面的布局,接着把它们放在一个基础模板中,所有使用它的模板可以导入该基础模板。
可以这么理解,就是在一个html文档中已经写好了框架,然后要往里面塞东西时,先用<% block blockname %><% endblock %>来放一个空的块在这里,作为基础模块,接下来被别的子模块导入的时候,用子模块里名字相同模块的东西替代。
base.html
<html>
<head>
{% if title %}
<title>{
{title}} - microblog</title>
{% else %}
<title>microblog</title>
{% endif %}
</head>
<body>
<div>Microblog: <a href="/index">Home</a></div>
<hr>
{% block content %}{% endblock %}
</body>
</html>
在上面的代码中,可以看到我们在后面设置了一个中间没有任何东西的块,也就是可以用Jinja2模块功能被继承的地方。
index.html
{% extends "base.html" %}#引入base基础模块
{% block content %}