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

Check if Flask request context is available

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

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

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

使用has_request_context or has_app_context.

if has_request_context():
    # request is active

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

if request:
    # request is active