如何使用Python在浏览器中输出HTML

0 投票
4 回答
7236 浏览
提问于 2025-04-16 21:02

我有一个用Python写的表单处理脚本,它会把输入的信息发邮件给我。然后我想在网页上显示一条消息,内容是“消息已发送”,用大标题(Heading 1)显示。邮件和表单处理的部分都正常工作,但我在浏览器里看到的只是文本,而不是浏览器把HTML渲染出来。

print 'Content-type: text/html\n\n'

我怀疑是因为这一行,谁能帮帮我?

这是我想要打印的内容

print "<html><head><title></title></head></html>"

我刚刚试着运行了这个测试脚本

print
print 'Content-type: text/html\n\n'

print '<HTML><HEAD><TITLE>Python Sample CGI</TITLE></HEAD>'
print '<BODY>'
print '<H1>This is a header</H1>'

print '<p>' #this is a comment
print 'See this is just like most other HTML'
print '<br>'
print '</BODY>'
print '</html>

这是我在浏览器中运行后看到的内容

Content-type: text/html


<HTML><HEAD><TITLE>Python Sample CGI</TITLE></HEAD>
<BODY>
<H1>This is a header</H1>
<p>
See this is just like most other HTML
<br>
</BODY>
</html>

4 个回答

0

有几点需要注意,首先确保你在文件顶部有正确的“she-bang”标记:

#!/usr/bin/env python

另外,确保你导入了 cgi 和 cgitb,并且调用了 cgitb.enable()。(不过 cgitb 的部分不是特别重要)

最后,确保你的文件权限设置正确。我通常把我的文件权限设置为 755。希望这些能帮到你!

0

你可以很简单地把用户引导到你希望他们看到的页面:

print 'Location: /thanksforemail.html'
print
1

这是你的问题:

print
print 'Content-type: text/html\n\n'

你的HTTP头部应该是最先输出的内容。但是你在它前面有一个空行,这就标志着HTTP头部的结束。所以浏览器把你本来想作为HTTP头部的内容当成了响应体的开始。它没有看到任何HTTP头部(除了服务器提供的),当然也没有看到Content-type:头部。

在这种情况下,要么是服务器,要么是你的浏览器默认内容类型为text/plain,所以浏览器不会去解析HTML标签。就这样。

总结一下:去掉第一个空的print

撰写回答