web2y 在视图中转义 {{ abc }} HTML

web2y escaping of {{ abc }} in view HTML

如何将以下字符串 {{ cake }} 添加到视图中,但仅将其显示为 {{ cake }}。 Web2py 尝试替换为不存在的变量。我只想在视图 HTML 中使用双开 {{ 和关闭 }} 而无需 web2py 搜索变量。

是否需要转义字符?

谢谢

一个选项是将开始定界符括在一对模板定界符内的引号中:

{{='{{'}} cake }}

请注意,不需要包装结束定界符,因为模板引擎只会在模板中前面存在不匹配的开始定界符时处理它。

另一种选择是定义辅助函数(最好在模型文件中,这样它在所有视图中都可用),例如:

def wrap(content):
    return '{{%s}}' % content

并在模板中:

{{=wrap('cake')}}

最后,如果问题是您使用的 Javascript 框架(例如 Vue.js)使用与 web2py 相同的模板定界符,您可以动态地(例如,每个控制器操作)通过 response.delimiters 更改 web2py 分隔符。例如:

response.delimiters = ('%{', '}%')

另外请注意,大多数 Javascript 框架也允许您指定自定义分隔符,因此您可能会发现在那里进行更改比在 web2py 中进行更改更容易。