【问题标题】:Rebase template function in bottle python doesn't render the template as it should瓶子python中的rebase模板函数不会按应有的方式呈现模板
【发布时间】:2014-05-18 20:31:51
【问题描述】:

我试图从瓶子文档中重现 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>
      &lt;p&gt;Page Content ...&lt;/p&gt;

</body>
</html>

如您所见,我的模板包含在正确的位置,但就像模板引擎出于安全原因而将其转义一样,我不知道为什么。

我很惊讶我是唯一一个遇到这个问题的人。

我正在使用 bottle v0.12.5 并在不同的环境(MacOSX 和 Ubuntu)上重现了该问题

有什么想法或想法吗?谢谢

【问题讨论】:

  • 我刚刚在另一个我之前没有找到的问题中找到了答案。我必须告诉 Bottle 这段代码是安全的,在我的基本模板中的变量 base 之前添加一个感叹号:{{!base}} 并且它可以工作。感谢stackoverflow

标签: python template-engine bottle


【解决方案1】:

HTML 特殊字符会自动转义。您可以通过在表达式开头添加 ! 来取消转义它们:

<body>
  {{!base}}
</body>

You can see the documentation about this here.

【讨论】:

    【解决方案2】:

    我认为;

    Bottle v0.12(stable) 的文档不正确。因为它说{{ base }}。 瓶子开发(开发)是正确的。因此, {{ !基础}}

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    相关资源
    最近更新 更多