如何在 jinja2 中转义双花括号? [英] How can I escape double curly braces in jinja2?

查看:57
本文介绍了如何在 jinja2 中转义双花括号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在我正在使用 Ansible 处理的代码中转义双花括号.问题是我拥有所有需要在变量中转换的参数.基本上我正在研究模板创建者.

I need to escape double curly braces in a code I'm working on using Ansible. The thing is I have all those parameters that needs to be transformed in variables. Basically I'm working on a template creator.

我尝试过使用 {% raw %}{{ name-of-variable }}{% endraw %} 但它没有用.当我尝试/{/{ name-of-variable }} 时,我几乎明白了,但我也试图摆脱反斜杠.

I've tried using {% raw %}{{ name-of-variable }}{% endraw %} but it did not worked. When I tried /{/{ name-of-variable }} I almost got it, but I am trying to get rid of the backslashes too.

代码如下:

local_action:
    module: replace
    path: "/tmp/{{ ambiance }}/{{ seed }}DEFAULT.j2"
    regexp: "{{ item.regexp1 }}"
    replace: "{{ item.replace }}"
  with_items: 
    - { regexp1: '^DBHOST.*$', replace: 'DBHOST = {% raw %}{{ databasehost }}{% endraw %}' }
    - { regexp1: '^GLOBALHOST.*$', replace: 'GLOBALHOST = {% raw %}{{ global_hostname }}{% endraw %}' }

我希望结果如下:

DBHOST = {{ satabasehost }}
GLOBALHOST = {{ global_hostname }}

有什么建议/想法吗?

推荐答案

{% raw %}{{ databasehost }}{% endraw %} 应该可以工作.

您也可以使用 {{ '{{ databasehost }}' }} 作为替代.

You can also use {{ '{{ databasehost }}' }} as an alternative.

这篇关于如何在 jinja2 中转义双花括号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆