假如有一个变量(如用户、时间等)需要在多个视图函数中频繁被调用,在每个视图函数中都传入该变量将会是一个繁琐的工作,这种情况下我们可以使用 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 }}
网友评论