4

我使用模板引擎“变色龙”开始了一个带有 Python 网络框架“金字塔”的项目。

我是这个框架的初学者,但我必须为客户使用它。

我按照步骤安装框架,然后开始编码,仅用于培训目的!

我的第一个应用程序是一个愚蠢、简单的 CRUD 应用程序。

我正在做的是:

在我__init__.py的每个视图中,我都有以下代码:

config.add_view('myenglishdictionary.views.modify',route_name='modify_route',renderer='templates/base.pt')

base.pt 是带有页眉和页脚的主模板以及带有以下代码的 div:

<div>${body}</div>

在我的文件 view.py 中,每个视图都有 2 行,如下所示:

body = render('templates/list.pt',{'list':list ,'project':'myProject'}, request=request)
return {'body':body}

在我的 list.pt 中有将嵌入 base.pt 的内容

一切似乎都很好。但是在更新库之后,现在我无法正确看到我的模板。

取而代之的是实际的 html 代码有 html 实体:

 &lt;div class="clear"&gt;&lt;/div&gt;

所以,显然页面看起来不太好。

问题似乎出在 render 方法中,因为 base.pt 模板的 html 显示正确。

4

1 回答 1

6

默认情况下,使用该${}语法会转义包含的文本(以帮助防御 XSS 注入攻击)。

相反,使用structure:前缀告诉渲染引擎不要转义您的文本:

<div>${structure: body}</div>
于 2011-10-14T14:33:18.897 回答