上下文处理器 context_processor

2021-12-09  本文已影响0人  SingleDiego

假如有一个变量(如用户、时间等)需要在多个视图函数中频繁被调用,在每个视图函数中都传入该变量将会是一个繁琐的工作,这种情况下我们可以使用 Flask 的上下文处理器 context_processor,它可以使得所有模板文件都能读取到该变量。

例子:

from datetime import datetime
from flask import Flask, render_template

app = Flask(__name__)

@app.context_processor
def inject_now():
    return {'now': datetime.utcnow()}

@app.route('/')
def index():
   return render_template('index.html')

上例中 inject_now() 函数(该函数名)绑定上 context_processor 装饰器,它返回一个包含当前时间的字典对象。

现在我们可以在所有模板文件中来直接使用 now 变量:

{{ now }}
上一篇 下一篇

猜你喜欢

热点阅读