¿Cómo funciona la declaración 'con' en Flask (Jinja2)?
En Python puedes usar elwith
declaración como esta (fuente):
class controlled_execution:
def __enter__(self):
# set things up
return thing
def __exit__(self, type, value, traceback):
# tear things down
with controlled_execution() as thing:
# some code
En Flask / Jinja2, el procedimiento estándar para usar mensajes flash es el siguiente (fuente):
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<!-- do stuff with `message` -->
{% endfor %}
{% endif %}
{% endwith %}
Me gustaria saber como{% with messages = get_flashed_messages() %}
funciona en términos de sintaxis.
No pude recrearlo en Python puro:
with messages = get_flashed_messages(): pass
planteaSyntaxError
with get_flashed_messages() as messages: pass
planteaAttributeError: __exit__
(He importadoget_flashed_messages
deflask
en ambos casos).