如何用Python在浏览器中输出HTML
我有一个表单处理python脚本,它只是通过电子邮件将输入发送给我,然后我只想显示一个网页,上面显示标题1中发送的消息。电子邮件和表单处理部分正在工作,但我得到的只是浏览器中显示的文本,而不是呈现HTML的浏览器如何用Python在浏览器中输出HTML,python,html,Python,Html,我有一个表单处理python脚本,它只是通过电子邮件将输入发送给我,然后我只想显示一个网页,上面显示标题1中发送的消息。电子邮件和表单处理部分正在工作,但我得到的只是浏览器中显示的文本,而不是呈现HTML的浏览器 print 'Content-type: text/html\n\n' 我怀疑是因为这条线,有什么可以帮忙的吗 这就是我想要打印的内容 print "<html><head><title></title></head><
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>
打印
打印“内容类型:text/html\n\n”
打印“Python示例CGI”
打印“
打印“这是一个标题”
打印“”#这是一条评论
打印“查看这与大多数其他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>
内容类型:文本/html
Python示例CGI
这是一个标题
看,这就像大多数其他HTML一样
您只需将用户重定向到您希望他们看到的页面:
print 'Location: /thanksforemail.html'
print
有几件事,首先确保你在顶部有正确的she-bang符号:
#!/usr/bin/env python
另外,请确保导入cgi、cgitb,并且您拥有cgitb.enable()。(尽管cgitb的内容没有那么重要)
最后,确保文件的chmoded正确。我通常是在得到许可的情况下做的。希望有帮助 这是你的问题:
print
print 'Content-type: text/html\n\n'
您的HTTP头需要首先打印。在它前面有一个空行,它标志着HTTP头的结束。因此,浏览器将您想要作为HTTP头的内容作为响应主体的开始。它看不到任何HTTP头(Web服务器提供的除外),当然也看不到内容类型:
头
在这种情况下,服务器或浏览器的默认内容类型为text/plain
,因此浏览器不会尝试解释HTML标记。瞧
TL;DR:取出第一个空白的
打印
将您的文件.py
保存在cgi bin文件夹中。
将CGIHTTPServer.py
文件保存在cgi-bin文件夹之外。
运行yourfile.py
文件后,运行CGIHTTPServer.py
文件。
您将得到一个端口号可能是8000。
然后打开浏览器并键入:
localhost:8000/cgi-bin/yourfile.py
好的,但是我想知道为什么它是以文本而不是HTML呈现的页面是以文本呈现HTML的页面,这样你就可以直接在浏览器窗口中看到标签了?在你输出内容类型
标题之前,你确定标题还没有被发送到代码中的其他地方吗?你能创建一封小电子邮件并告诉我们标题的来源吗现在我只是隔离了我不明白的部分,上面的测试脚本没有发送电子邮件,只是将HTML输出到浏览器,但我得到的只是文本。我尝试过各种web服务器apache、IIS、abyss web服务器,但sameI刚刚验证了这一点,并开始键入。虽然这些导入对于表单处理很有用,但对于问题中的简单测试脚本来说,这些导入并不需要。