Bottle Python中的重基模板函数未按预期渲染模板
我正在尝试复现Bottle文档中的rebase函数的基本示例,但当我的模板被渲染时,HTML代码被编码了,我的标签被替换成了对应的HTML代码。
我的模板:
% rebase('base.tpl', title='Page Title')
<p>Page Content ...</p>
我的基础模板:
<html>
<head>
<title>{{title or 'No title'}}</title>
</head>
<body>
{{base}}
</body>
</html>
最终渲染的HTML:
<html>
<head>
<title>Page Title</title>
</head>
<body>
<p>Page Content ...</p>
</body>
</html>
如你所见,我的模板在正确的位置被包含,但就像模板引擎出于安全原因对其进行了转义,我不知道为什么会这样。
我很惊讶自己是唯一遇到这个问题的人。
我使用的是Bottle v0.12.5,并在不同的环境(MacOSX和Ubuntu)上复现了这个问题。
有什么想法或建议吗?谢谢!
2 个回答
0
我觉得;
Bottle v0.12(稳定版)的文档不太对。因为它提到的 {{ base }} 是错误的。而Bottle的开发版文档是正确的,所以应该用 {{ ! base }}。
6
HTML中的特殊字符会自动被转义,也就是说它们会被处理成一种安全的形式。如果你想把它们恢复成原来的样子,可以在你的表达式前面加一个!
:
<body>
{{!base}}
</body>