web-dev-qa-db-fra.com

Vérifiez si Flask est disponible

Je souhaite enregistrer certaines données à partir de variables de contexte (request, session) lors de la journalisation lors d'une demande Flask, mais utiliser le comportement par défaut sinon.

J'utilise un try ... except bloquer dans logging.formatter. Existe-t-il un meilleur moyen de vérifier le contexte d'une demande?

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

Utilisation has_request_context ou has_app_context .

if has_request_context():
    # request is active

Alternativement, current_app, g, request et session sont toutes des instances de LocalProxy. Si un proxy n'est pas lié, il sera False lorsqu'il sera traité comme un booléen.

if request:
    # request is active
39
davidism