【发布时间】:2013-11-21 20:28:19
【问题描述】:
标题说明了大部分内容。 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 浏览器中的结果总是显示尖括号而不是将它们呈现为标签。即,网页显示:
Hi there!
我需要能够将用户内容(带有标记的 html)传递给模板,以使其内联呈现。我还需要做什么?
【问题讨论】:
-
HTMLParser是什么?在 Python 3.3 中,HTMLParser类位于模块html.parser而不是HTMLParser中,它确实 not 有任何unescape方法... -
@PiotrDobrogost:这更有可能是 Python 2。
.unescape()方法是出了名的无证。它仍然存在于 Python 3.3 中。 -
.unescape()方法是将 HTML 实体变回常规字符,与您想要的完全正交;标记字符串安全以包含在您的模板中。 -
您使用什么模板语言来呈现这些字符串?
-
是的,我正在运行 2.7。
标签: python python-3.x escaping pyramid html-parser