我使用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'
答案 0 :(得分:7)
{{{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}}}。
答案 1 :(得分:2)
很久以前they've got such suggestion。
escape
类初始化程序有辅助Renderer
选项。此选项接受对字符串进行操作的函数。默认值为cgi.escape(s, quote=True)
。
所以当你写:
import pystache
rend = pystache.Rendered(escape=lambda s: s)
rend.render(your_obj)
在模板中没有三边括号的情况下,您的值没有被逸出。
请参见Rendered
类的docs