一:继承
基类模板base.html 中在进行挖坑 {% block 坑的名字%}{% endblock %}
子类模板test.html 中 通过 {% extends "base.html" %} 继承父类模板,然后进行填坑,{% block 坑的名字 %}{% endblcok %}
填坑的方式有两种:
1. 直接使用父类的坑,不进行更改,那就在子类中调用super()方法,显示父类同样位置坑的内容。
{% block 坑的名字 %}{{ super() }}{% endblcok %}
2. 使用父类的坑,并进行更改的,
{% block 坑的名字 %}这是更改的内容{% endblcok %}
实例:
base.html
<!doctype html> <html lang="zh-hans"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <div style="background-color: red">{% block head %}{% endblock %}</div> <br> <div style="background-color: yellow">{% block body %}{% endblock %}</div> <br> <div style="background-color: green">{% block foot %}{% endblock %}</div> </body> </html>
test1.html
{% extends 'base.html' %} {% block head %} <h1>这是继承父类模板的头部内容</h1> {% endblock %} {% block body %} <h2>这是继承父类的中间内容</h2> {% endblock %} {% block foot %} <h3>这是继承父类模板的底部内容</h3> {% endblock %}
视图函数
from flask import Flask from flask import request from flask import redirect from flask.ext.script import Manager from flask import render_template app = Flask(__name__) app.config["secret_key"] = "hard to guess" @app.route("/") def index(): return "这是主页" @app.route("/test") def templates(): return render_template("test1.html") if __name__ == "__main__": app.run(debug=True)
浏览器显示
对父类模板的div布局和样式进行了继承,同时子类模板中,还进行了文字内容的添加,以及文字大小的设置。