我试图插入
jQuery templates到
Jinja2模板。 Alas他们(在默认设置)使用胡子{{& }}分别表示表达式和文字。
我把我的jQuery模板插入带有脚本标签的HTML,像这样:
<script type='text/x-jquery-template'> <div>The people are: {{ each people }} ${$value} {{ /each }} </div> </script>
如果上面是一个Jinja模板,但是,它阻止,因为Jinja试图解释每个作为一个字面量。
在这种情况下(我们有很多模板),改变Jinja2的变量的开始和结束分隔符是不实际的。此外,它混乱,降低互操作性,需要额外的培训。最好避免此选项。
所以我想到的解决这两个替代的事情是:
> Jinja2转义每个“{{‘和’}}”,我不知道如何做最好的(“{{”{{“}}`,也许,但是详细);
>更实际 – 也许是理想的 – 会告诉Jinja2不解析一段代码,可能通过jQuery扩展。
我会感谢的想法和反馈。谢谢你阅读。
解决方法
你可以使用{%raw%} {%endraw%}构造来缓解你逃脱的困境(直接从
Jinja2 docs)。
例:
<script type='text/x-jquery-template'> <div>The people are: {% raw %}<!-- Everything in here will be left untouched by Jinja2 --> {{ each people }} ${$value} {{ /each }} {% endraw %} </div> </script>