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

ubo*_*mbi 23 python logging werkzeug flask

我想在Flask请求期间记录时记录上下文变量(request,session)中的一些数据,但是如果没有则使用默认行为.

我正在使用一个try ... exceptlogging.formatter.有没有更好的方法来检查请求上下文?

try:
    record.user = session['user_name']
    record.very_important_data = request.super_secret
except Exception:
    record.user = None
Run Code Online (Sandbox Code Playgroud)

dav*_*ism 35

使用has_request_contexthas_app_context.

if has_request_context():
    # request is active
Run Code Online (Sandbox Code Playgroud)

另外,current_app,g,request,和session是所有实例LocalProxy.如果未绑定代理,则将其False视为布尔值.

if request:
    # request is active
Run Code Online (Sandbox Code Playgroud)