逃避Jinja2模板中的Jinja2语法

120

我在Flask框架中使用Jinja2模板来提供动态页面。现在我想要在客户端定义模板,使用类似于Jinja2的Nunjucks。但问题是,客户端的模板有像<% %>这样的语法,可能会被Flask的Jinja2解释器误解为代码而非原样显示。

如何使整个脚本块呈原样显示?


注意:[tag:jinja] 和 [tag:twig] 在这方面有所不同。 - dreftymac
1个回答

267

您可以禁用在{% raw %}块中的标签解释:

{% raw %}

Anything in this block is treated as raw text,
including {{ curly braces }} and
{% other block-like syntax %}

{% endraw %}

查看模板文档的转义章节


有没有可能跳过 {% endraw %} 这一行? - Vlad Havriuk
6
@Vlad:不完全是。不要在一个原始块内使用完全相同的文本。可以在原始块之外使用{{ "{" }}来插入紧随其后的字面大括号和% endraw %}。如果正在生成HTML,则可以使用HTML实体,如&lbrace;&percnt;&rbrace;,而不是分别使用{} - Martijn Pieters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接