230.6.flask模板

1.main.py

# coding=utf-8
from flask import Flask, render_template, Markup

app = Flask(__name__)


# 加上这个装饰器只有每个模板中都可以直接使用这个函数 {{ sb(1,2)}}
@app.template_global()
def sb(a1, a2):
    return a1 + a2


# 加上这个装饰器只有每个模板中都可以直接使用这个函数 {{ 1 | sb(1,2)}}
@app.template_filter()
def sb2(a1, a2, a3):
    return a1 + a2 + a3


def gen_input(value):
    # return "<input value=%s>" % value
    return Markup("<input value=%s>" % value)


@app.route("/index")
def index():

    context = {
        "k1": "123",
        "k2": [11,33,22],
        "k3": {"name": "alex", "age": 12},
        "k4": lambda x: x + 1,
        "k5": gen_input  # 临时函数, 当前模板可以使用
    }

    return render_template("index.html", **context)


@app.route("/index2")
def index2():

    context = {
        "k1": "123",
        "k2": [11,33,22],
        "k3": {"name": "alex", "age": 12},
        "k4": lambda x: x + 1,
        "k5": gen_input  # 临时函数, 当前模板可以使用
    }

    return render_template("index.html", **context)


if __name__ == '__main__':
    app.run(debug=True)

2.模板

  • templates/index.html
{% extends "layout.html" %}
{% block content %}
    <h1>{{ k1 }}</h1>
    <h1>{{ k2.0 }}</h1>
    <h1>{{ k3.name }}</h1>
    <h1>{{ k4(9) }}</h1>
    <h1>{{ k5(9)|safe }}</h1>
    <h1>{{ sb(1,2) }}</h1>
    <h1>{{ 1 | sb2(1,2) }}</h1>
{% endblock %}
  • templates/layout.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
 <div>start</div>
 <div>
     {% block content %} {% endblock %}
 </div>
 <div>end</div>
</body>
</html>
posted @ 2022-06-02 13:47  楠海  阅读(39)  评论(0)    收藏  举报