flask之模板之继承

一:继承

  基类模板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布局和样式进行了继承,同时子类模板中,还进行了文字内容的添加,以及文字大小的设置。

原文地址:https://www.cnblogs.com/meloncodezhang/p/11724806.html