我正在使用pystache渲染模板。渲染具有&的上下文变量时,输出中出现&
。如何在需要&的地方摆脱&
。Django模板也发生了同样的事情
>>> pystache.render('The URL {{URL}}', {'URL': 'http://google.com?a=3&b=3'})
u'The URL http://google.com?a=3&b=3'
{{{var}}}
为了防止转义,请使用三括号,{{{URL}}}
而不是双括号{{URL}}
>>> pystache.render('The URL {{{URL}}}', {'URL': 'http://google.com?a=3&b=3'})
u'The URL http://google.com?a=3&b=3'
我已经在今天的最新发行版0.5.4
中对此进行了测试
由于Pystache是Python中的Mustache实现,因此您可以将Mustache的文档用作指针。
默认情况下,所有变量都是HTML转义的。如果你想回来未经转义的HTML,请使用三重胡须:{{{name}}}。
escape
类初始化程序有辅助Renderer
选项。此选项接受对字符串进行操作的函数。默认值为cgi.escape(s, quote=True)
。所以当你写:
import pystache
rend = pystache.Rendered(escape=lambda s: s)
rend.render(your_obj)
您在模板中没有三边括号的情况下获得了未转义的值。
请参见docs类的Rendered