一、继承
继承是通过对老HTML的继承,实现代码的复用
模板.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是模板</h1>
<!-- 之间的内容为新html的内容 -->
{% block body %}{% endblock %}
{{ a }}
</body>
</html>
index.html
{% extends '模板.html' %}
{% block body %}
<h2>我是index.html,我继承了模板.html</h2>
{% endblock %}
二、宏定义
通过宏定义,增加代码的复用
定义 input() 为一个输入框
{% macro input() %}
<input type="text" name="username" value="" size="30">
{% endmacro %}
在下面代码中使用 **{{input()}}**即可调用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% macro input() %}
<input type="text" name="username" value="" size="30">
{% endmacro %}
{% for foo in range(7) %}
<h1>输入{{ foo }}</h1>{{ input() }}<br>
{% endfor %}
<h1>输入7{{ foo }}</h1>{{ input() }}<br>
</body>
</html>
如果需要添加参数,可修改为如下形式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% macro input(type="text", value="", size="20") %}
<input type="{{ type }}" name="username" value="{{ value }}" size="{{ size }}">
{% endmacro %}
{% for foo in range(10) %}
<h1>输入{{ foo }}</h1>{{ input(type="password") }}<br>
{% endfor %}
</body>
</html>