我想在Flask请求期间记录时记录上下文变量(request
,session
)中的一些数据,但是如果没有则使用默认行为。
我在try ... except
中使用了logging.formatter
块。有没有更好的方法来检查请求上下文?
try:
record.user = session['user_name']
record.very_important_data = request.super_secret
except Exception:
record.user = None
答案 0 :(得分:26)
使用has_request_context
或has_app_context
。
if has_request_context():
# request is active
或者,current_app
,g
,request
和session
都是LocalProxy
的实例。如果未绑定代理,则将其视为布尔值时为False
。
if request:
# request is active