如何使用Python在浏览器中输出HTML
我有一个用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
。