jinja 模板中变量名中的转义点

Him*_*hah 5 python jinja2

我有 jinja 模板文件,其变量名如 xyz (如 java 包名)。然后我使用 Python envtpl 使用 envtpl.process_file 从 jinja 模板文件生成实际配置文件。但是它错误地说'x'是未定义的。我知道在 jinja 中,点意味着别的东西,所以我如何转义它,以便 envtpl 理解“xyz”是一个变量名,而不仅仅是“x”。

模板文件例如:

foo = "{{ x.y.z | default("abc") }}"
bar = "{{ a.b.c | default("123") }}"
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 1

如果有人仍然对此感兴趣,这对我有用:

/* model */
...
some_function('some.value')
...



{# macro #}
{% macro some_function(value) %}
    {% set data = {{ "'"+value+"'" }} %}
    {{ data }}
{% endmacro %} 
Run Code Online (Sandbox Code Playgroud)

或者

{# macro #}
{% macro some_function(value) %}
    {% set data = {{ "'%s'" % value }} %}
    {{ data }}
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)