Как игнорировать фигурные скобки jinja2 {{}} в файле шаблона j2

У меня есть файл j2, который я хочу отредактировать и скопировать на свой удаленный сервер (помимо моей доступной игры). В файле есть несколько 3 переменных, обозначенных фигурными скобками {{ }}. Как я могу настроить таргетинг только на вторую переменную с именем {{ bar }} и игнорировать две другие в файле, чтобы их оставили в покое и скопировали на мой удаленный сервер? Например, мой файл test.j2 содержит:

line 1 {{ foo }}
line 2 {{ bar }}
line 3 {{ foo2 }}

Могу ли я явно адресовать {{ bar }} переменную в моем доступном сценарии? Если да, то как мне написать это (синтаксически) в моем доступном сценарии?


person druffin    schedule 05.11.2017    source источник


Ответы (3)


Я бы не рекомендовал следующее:

{% raw %}line 1 {{ foo }}{% endraw %}
line 2 {{ bar }}
{% raw %}line 3 {{ foo2 }}{% endraw %}

По сути, идея состоит в том, чтобы пометить переменные, не являющиеся полосами, как необработанные, чтобы jinja не шаблонировал их.

person bow    schedule 05.11.2017

Вы можете использовать блок {% raw %}, как упоминает @bow, или есть также сокращение для меньших фрагментов кода, он короче, но не обязательно более читабелен, чем просто использование необработанного блока.

line 1 {{ '{{' }} foo {{ '}}' }}
line 2 {{ bar }}
line 3 {{ '{{' }} foo {{ '}}' }}

http://jinja.pocoo.org/docs/2.9/templates/#escaping < / а>

person Nick Hammond    schedule 05.11.2017

еще одна альтернатива:

line 1 {{ '{{foo}}' }}
line 2 {{ bar }}
line 3 {{ '{{foo2}}' }}
person Chris Maes    schedule 30.04.2020