2016-10-27 37 views
7

Chcę zalogować niektóre dane ze zmiennych kontekstowych (request, session) podczas logowania podczas żądania Flask, ale użyj domyślnego zachowania, jeśli nie.Sprawdź, czy kontekst żądania Flask jest dostępny

Używam bloku try ... except w logging.formatter. Czy istnieje lepszy sposób sprawdzenia kontekstu żądania?

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

Odpowiedz

11

Użyj has_request_context lub has_app_context.

if has_request_context(): 
    # request is active 

Alternatywnie current_app, g, request i session są przypadki LocalProxy. Jeśli proxy nie jest związane, będzie to False traktowane jako boolean.

if request: 
    # request is active