编程语言
首页 > 编程语言> > 我如何从Pylons控制器获取一些字符串值,并用Mako分配给JavaScript变量?

我如何从Pylons控制器获取一些字符串值,并用Mako分配给JavaScript变量?

作者:互联网

我正在使用Mako模板在Pylons下进行开发.问题是我需要将tmpl_context的某些属性中的字符串分配给页面主体中的JavaScript变量.另一个问题是该字符串可能是任意的,即可以包含诸如“,’,<,>等之类的字符.是否有一种通用的方法来进行这种分配?
我已经尝试过类似的东西:

<script>
    ...
    var a = "${c.my_string}";
    ...
</script>

但我得到引号,并且转义了HTML特殊字符.但是我不想禁用过滤,因为执行意外代码的可能危险.

解决方法:

您在c.my_string中有一些任意数据,因此不想使用“ | n”,对吗?

以JS样式进行转义的最快方法是

var a = ${c.my_string.__repr__()|n}; # Note lack of "" around it! 

但是我不确定<>字符(插入了< / script>之类的字符),也许您也想使用.replace(‘<','& lt;'); 对于unicode,您还需要从字符串开头删除’u’字符.

标签:pylons,templating,mako,escaping,python
来源: https://codeday.me/bug/20191209/2097489.html