paw*_*cki 6 python jinja2 flask
在Python中,您可以使用这样的with
语句(源代码):
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
Run Code Online (Sandbox Code Playgroud)
在Flask/Jinja2中,使用flash消息的标准过程如下(源):
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<!-- do stuff with `message` -->
{% endfor %}
{% endif %}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)
我想知道{% with messages = get_flashed_messages() %}
语法方面的工作原理.
我无法在纯Python中重新创建它:
with messages = get_flashed_messages(): pass
加薪 SyntaxError
with get_flashed_messages() as messages: pass
加薪 AttributeError: __exit__
(我get_flashed_messages
从flask
两种情况下都进口了).
Shr*_*dha 11
{% with %}
Jinja 中的语句允许您定义变量,但使用 {% endwith %}
陈述。例如 :
{% with myvar=1 %}
...
{% endwith %}
Run Code Online (Sandbox Code Playgroud)
在主体中声明的任何元素都可以访问 myvar 变量。
请参考 - https://www.webforefront.com/django/usebuiltinjinjastatements.html
将with
在瓶说法是不一样的with
Python中的语句.
在python中,等效的是:
messages = get_flashed_messages()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4017 次 |
最近记录: |