检查 Flask 请求上下文是不是可用

Posted

技术标签:

【中文标题】检查 Flask 请求上下文是不是可用【英文标题】:Check if Flask request context is available检查 Flask 请求上下文是否可用 【发布时间】:2017-03-10 03:34:48 【问题描述】:

我想在 Flask 请求期间记录时从上下文变量(requestsession)记录一些数据,但如果不是,请使用默认行为。

我在logging.formatter 中使用try ... except 块。有没有更好的方法来检查请求上下文?

try:
    record.user = session['user_name']
    record.very_important_data = request.super_secret
except Exception:
    record.user = None

【问题讨论】:

【参考方案1】:

使用has_request_contexthas_app_context

if has_request_context():
    # request is active

或者,current_appgrequestsession 都是 LocalProxy 的实例。如果未绑定代理,则将其视为布尔值时为False

if request:
    # request is active

【讨论】:

以上是关于检查 Flask 请求上下文是不是可用的主要内容,如果未能解决你的问题,请参考以下文章

Flask上下文源码分析

Flask-1-06-script扩展

Flask的请求上下文机制

flask的Request对象

Flask中的http请求与响应

将烧瓶请求/应用程序上下文复制到另一个进程