代码复用
程序员文章站
2024-02-23 21:48:10
...
宏
-
解释:相当于python中的函数,定义好一段功能,在需要的时候进行调用即可
-
定义格式:
{% macro 宏命(参数) %} {% endmacro %}
-
使用格式:
// 使用当前文件定义好的宏 {{ 宏名(参数) }} // 使用外部文件定义好的宏 {{% import '文件' as 别名 %}} {{ 别名.宏名(参数) }}
示例:
python:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template("file06_macro.html")
if __name__ == '__main__':
app.run(debug=True)
file06文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{# 定义宏 #}
{% macro my_macro(name,password) %}
用户名:<input type="text" value="{{ name }}"><br>
密码:<input type="password" value="{{ password }}"><br>
{% endmacro %}
{# 调用当前文件宏 #}
{{ my_macro('zhangsan', '111111111') }}
{# 调用其他文件宏 #}
{% import 'file07other_macro.html' as other %}
{{ other.my_input() }}
{{ other.my_div() }}
</body>
</html>
file07文件:
{% macro my_macro(name,password) %}
用户名:<input type="text" value="{{ name }}"><br>
密码:<input type="password" value="{{ password }}"><br>
{% endmacro %}
{% macro my_input() %}
<h1>这是h1宏文件</h1>
{% endmacro %}
{% macro my_div() %}
<div>这是div宏文件</div>
{% endmacro %}
结果展示:
继承(常用)
-
解释:一个子模板继承自父模板
-
作用:共性抽取,代码复用
-
父模板
- 所有子类都具有的相同的内容的,在父模板中直接写死
- 每个子类的模板中不一样的内容,使用block模板定义好
-
子模板
- 根据子类自己的需求,去重写父类中的block对应的内容
- 如果重写之后,还想保留父类的内容,那么使用{{ super() }}
- 继承格式:{% entend ‘父文件名’ %},写在页面的顶部
-
注意点
定义的block格式{% block 名称 %} {% endblock %}
示例:
python代码:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template("file08zi.html")
if __name__ == '__main__':
app.run(debug=True)
父类代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{# 标题部分 #}
{% block titleBlock %}
<h1>标题</h1>
{% endblock %}
{# 内容部分 #}
{% block contentBlock %}
<P>1231312</P>
{% endblock %}
{# 底部 #}
<div>
<a href="#">
点我
</a>
</div>
</body>
</html>
子类代码:
{% extends 'file09fu.html' %}
{# 重写标题与父类保留 #}
{% block titleBlock %}
{{ super() }}
<h1>标题二</h1>
{% endblock %}
{# 重写正文部分 #}
{% block contentBlock %}
aaaa
{% endblock %}
结果展示:
包含
-
解释:在一个文件中完全拥有另一个文件,不够灵活,没法扩展
-
格式:
方式一: {% include '文件' %} 方式二: {% include '文件' ignore missing %}
-
注意点:ignore missing 如果包含的文件不存在,也不会报错
示例:
python代码:
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('file10_include.html')
if __name__ == '__main__':
app.run(debug=True)
include代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% include 'file01.html' ignore missing %}
</body>
</html>
file01代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.box {
width: 300px;
height: 300px;
background: red;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
结果展示: