0

标题说明了大部分内容。Python3.3 使用 Pyramid 应用程序框架 (-s starter) 将此代码添加到 views.py 控制器:

from HTMLParser import HTMLParser
h = HTMLParser()

string = '<p>Hi there!</p>';
return dict( string=h.unescape(string) )

如果 return dict(..) 被传递给一个带有简单 ${string} 标记的模板,那么 Web 浏览器中的结果总是显示尖括号而不是将它们呈现为标签。即,网页显示:<p>您好!</p>

我需要能够将用户内容(带有标记的html)传递给模板,以便它内联呈现。我还需要做什么?

4

1 回答 1

0

模板引擎正在转义变量,因为几乎每个模板引擎都会这样做。

您需要构建模板以不转义变量。这在 mako 、 chameleon 等中有所不同。

IIRC,starter脚手架使用 Chameleon 的.pt模板。

如果这就是您所使用的,那么另一个 StackOverflow 问题将完全回答您的问题:Python Pyramid & Chameleon templating language escapes html

于 2013-11-22T16:31:38.317 回答