Wie funktioniert die 'with'-Anweisung in Flask (Jinja2)?
n Python können Sie daswith
Anweisung wie folgt Quell):
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
In Flask / Jinja2 ist das Standardverfahren für die Verwendung von Flash-Nachrichten das folgende Quell):
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<!-- do stuff with `message` -->
{% endfor %}
{% endif %}
{% endwith %}
Ich würde gerne wissen wie{% with messages = get_flashed_messages() %}
funktioniert syntaktisch.
Ich konnte es nicht in reinem Python neu erstellen:
with messages = get_flashed_messages(): pass
wirftSyntaxError
with get_flashed_messages() as messages: pass
wirftAttributeError: __exit__
(Ich habe @ importierget_flashed_messages
vonflask
in beiden Fällen)