【问题标题】:Pyramid, Chameleon and template rendering金字塔、变色龙和模板渲染
【发布时间】:2011-12-07 19:37:04
【问题描述】:

我使用模板引擎“chameleon”开始了一个使用 Python 网络框架“Pyramid”的项目。

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

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

我的第一个应用程序是一个愚蠢、简单的 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显示正确。

【问题讨论】:

    标签: python pyramid chameleon template-tal


    【解决方案1】:

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

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

    <div>${structure: body}</div>
    

    【讨论】:

      猜你喜欢
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 2011-12-25
      • 1970-01-01
      相关资源
      最近更新 更多