如何使用`python -m SimpleHTTPServer 8000`或`python -m CGIHTTPServer 8000`托管python cgi脚本?

时间:2012-05-01 10:18:54

标签: python hosting cgi simplehttpserver

当我在我的shell中运行python -m SimpleHTTPServer 8000python -m CGIHTTPServer 8000时,我将当前目录的内容托管到互联网上。

当我浏览192.xxx.x.xx:8000/cgi_script.py

时,我想在命令行中使用上面的命令正确地运行以下cgi_script.py
#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""

但是这个脚本字面上显示而不仅仅是“Hello World!”部分。 顺便说一下,我将cgi_script.py的文件权限更改为755,以及我托管它的文件夹。

6 个答案:

答案 0 :(得分:33)

尝试使用python -m CGIHTTPServer 8000

请注意,您必须将脚本移至cgi-binhtbin目录才能运行。

答案 1 :(得分:6)

所以我不允许我发表评论所以我将这个作为一个单独的答案加入,除了罗德里戈之外。

您可以使用默认为cgi_directories的其他参数['/cgi-bin', '/htbin']。更多信息here

答案 2 :(得分:0)

当我遇到这个问题时,我发现根据您运行python -m CGIHTTPServer 8000命令时所在的目录,会产生不同的结果。当尝试在cgi-bin目录中运行命令时,浏览器继续返回原始脚本代码。一旦我将CD更高一级并再次运行python -m CGIHTTPServer 8000命令,我的脚本就开始执行了。

答案 3 :(得分:0)

@ Bentley4 -ifyou仍然无法做到, 尝试导入cgi。

#!C:\ Python34 \ python.exe -u 导入cgi 打印(&#34;内容类型:text / html&#34;)

HTH

答案 4 :(得分:0)

在Python3中,命令行只是

python -http.server --cgi 8000

答案 5 :(得分:0)

这项工作对我来说,运行python -m CGIHTTPServer 8000命令与cgi-bin相同的菜单级别,并将cgi_script.py移动到cgi-bin文件夹。在浏览器类型http://localhost:8000/cgi-bin/cgi_script.py