Python 在web.py中呈现HTML
我正在处理一个类似维基百科的项目。我可以使用标记将文本文件转换为html代码。我的问题是,我想在一个html文件中呈现这个html代码。这是我的密码Python 在web.py中呈现HTML,python,html,templates,web.py,Python,Html,Templates,Web.py,我正在处理一个类似维基百科的项目。我可以使用标记将文本文件转换为html代码。我的问题是,我想在一个html文件中呈现这个html代码。这是我的密码 class articles: def GET(self): form_name=web.input() article_name=form_name.page article_file_path=os.path.join('articles',article_name) fp
class articles:
def GET(self):
form_name=web.input()
article_name=form_name.page
article_file_path=os.path.join('articles',article_name)
fp = open(article_file_path,'rU')
text = fp.read()
body = markdown2.markdown(text)
return render.article_files(article_name, body)
我正在将article_name和body(html代码)传递到article_files.html。尸体看起来像
<h1>Hai</h1>
<p>Welcome<em>Ajay</em></p>
Hai
欢迎光临
问题是,实体显示为原样。也就是说,html代码与所有标记一起打印在屏幕上。我想把这个html代码(主体)呈现为
Hai欢迎阿杰 我的HTML文件是:
$def with(title,content)
<html>
<head>
<title>$title</title>
</head>
<body>
<form name="form" method="GET">
$content
</form>
</body>
</html>
$def带(标题、内容)
$title
$content
默认情况下,web.py模板中的HTML转义处于启用状态。要关闭此选项,请在变量名称前加一个冒号:
<form name="form" method="GET">
$:content
</form>
$:内容
请确保潜在的恶意用户无法将任意HTML输入到未扫描的模板中。您需要指定发送到浏览器的日期,否则它不知道如何显示
可以通过将添加到函数中来完成此操作:
web.header('Content-Type', 'text/html')
我很确定Ajay说的是正文(即,
h1
和p
)被逐字逐句地呈现出来,而不是整个页面。我不确定为什么会被否决。即使没有渲染实体,这仍然很有用。解决了我的问题,投了赞成票。