如何从jinja宏在flask上下文中设置变量?

如何从jinja宏在flask上下文中设置变量?,flask,jinja2,Flask,Jinja2,我想创建一个宏,如果以前调用过它,它需要跟踪。因此,我必须在宏的请求上下文中设置一个变量,但我不知道如何才能做到这一点。比如: {% macro my_macro() -%} {% set g.foo = "bar" %} <-- Error {{ g.get('foo') }} {%- endmacro %} {%macro my_macro()-%} {%set g.foo=“bar”%}在那里使用do而不是set命令: {% do g.update({"foo"

我想创建一个宏,如果以前调用过它,它需要跟踪。因此,我必须在宏的请求上下文中设置一个变量,但我不知道如何才能做到这一点。比如:

{% macro my_macro() -%}
    {% set g.foo = "bar" %}   <-- Error
    {{ g.get('foo') }}
{%- endmacro %}
{%macro my_macro()-%}
{%set g.foo=“bar”%}在那里使用
do
而不是
set
命令:

{% do g.update({"foo": "bar"}) %}
请注意,
do
命令在默认情况下是有效的,因此必须启用
jinja2.ext.do
as