2016-10-27 4 views
7

플라스크 요청 중에 로깅 할 때 컨텍스트 변수 (request, session)의 일부 데이터를 기록하려고하지만, 그렇지 않은 경우 기본 동작을 사용하고 싶습니다.플라스크 요청 컨텍스트가 사용 가능한지 확인하십시오.

나는 logging.formattertry ... except 블록을 사용하고 있습니다. 요청 컨텍스트를 확인하는 더 좋은 방법이 있습니까?

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

답변

11

사용 has_request_context 또는 has_app_context. 또한

if has_request_context(): 
    # request is active 

, current_app, g, requestsessionLocalProxy의 모든 인스턴스입니다. 프록시가 바인드되지 않은 경우 부울로 처리 될 때 False이됩니다.

if request: 
    # request is active