我发现这个代码g会对每个响应进行计时,但我不确定应该从哪里来.什么是g?
@app.before_request
def before_request():
g.start = time.time()
@app.teardown_request
def teardown_request(exception=None):
diff = time.time() - g.start
print diff
Run Code Online (Sandbox Code Playgroud)
dav*_*ism 18
g是Flask提供的对象.它是一个全局命名空间,用于在单个应用程序上下文中保存所需的任何数据.
from flask import g
@app.before_request
def load_user():
user = User.query.get(request.session.get("user_id"))
g.user = user
@app.route("/admin")
def admin():
if g.user is None or not g.user.is_admin:
return redirect(url_for("index"))
Run Code Online (Sandbox Code Playgroud)
应用程序上下文持续一个请求/响应周期,before_request不适合跨请求存储数据.使用数据库,redis,会话或其他外部数据源来保存数据.
请注意,开发服务器和任何Web服务器都将在日志中输出计时信息.如果您确实想要分析代码,可以使用Werkzeug应用程序分析器.