Flask模板
模板 和django的模板引擎 支持list[] 函数默认不加括号 from flask import Flask, Markup, render_template app = Flask

Flask模板

发布时间:2024-03-19 (2024-03-19)

模板

和django的模板引擎

  • 支持list[]
  • 函数默认不加括号
from flask import Flask, Markup, render_template

app = Flask(__name__)


# 全局函数
@app.template_global()  # 每个模板中都可以使用
def global_fun(a1, a2):
    return a1 + a2


@app.route('/')
def index():
    def fun_inner(v1):
        return v1 + 100

    def fun_safe(v1):
        return Markup(f'<input value="{v1}"/>')  # 安全字符串

    context = {
        'x1': '枫枫知道',
        'x2': ['a1', 'a2', 'a3'],
        'x3': {'name': '王五'},
        'x4': lambda x: x + 1,
        'x5': fun_inner,
        'x6': fun_safe,

    }

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


if __name__ == '__main__':
    app.run(debug=True, port=80)
# 前端使用
<p>{{ x1 }}</p>
<p>{{ x2.0 }}  -- {{ x2[0] }}</p>
<p>{{ x3.name }} -- {{ x3['name'] }}</p>
<p>{{ x4(2) }}</p>
<p>{{ x5(100) }}</p>
<p>{{ x6(7) }}  -- {{ '<span style="color:red;">哈哈哈</span>'|safe }}</p>
<p>{{ global_fun(4, 3) }}</p>

自定义过滤器

# 自定义过滤器
@app.template_filter()
def db(a1, a2, a3):
    return f'{a1}--{a2}--{a3}'
    
# 调用
<p>{{ 'zhangsan'|db('21', '北京市') }}</p>

模板继承

和django的模板一致

include也是一致的