我的cgi脚本是:
#!/usr/bin/env python
import cgi
reshtml='''Content-Type:text/html\n
<HTML>
<HEAD>
<title>
Friends CGI demo(dynamic screen)
</title>
</HEAD>
<body>
<h3>Friends list for:<i>%s</i></h3>
Your name is: <b>%s</b>
You have<b>%s</b>friends.
</body>
</HTML>'''
form = cgi.FieldStorage()
who = form['person'].value
howmany = form['howmany'].value
print(reshtml % (who, who, howmany))
这里服务器返回完整的脚本作为文本而不是执行它,根据我的说法它应该只返回reshtml值,浏览器可以理解。 我正在使用python Web服务器并在当前工作目录中成功执行命令C:\ Python32 \ Lib \ http \ server.py。 那么这里出现的问题是什么?
答案 0 :(得分:0)
该模块的默认http服务器不包含CGI支持。如果你有Python3.4,也许你错过了--cgi
切换到http / server:
c:\> python c:\python32\lib\http\server.py --cgi
或更方便:
c:\> python -mhttp.server --cgi
另一方面,如果您使用Python3.2,请尝试以下操作,这应该适用于两种环境:
创建一个名为httpd.py的文件:
import http.server
server_address = ('',8000)
server_class = http.server.HTTPServer
handler_class = http.server.CGIHTTPRequestHandler
httpd = server_class(server_address, handler_class)
httpd.serve_forever()
像这样运行:
c:\> python \httpd.py
它将正确提供可执行的CGI文件,但前提是它们位于./cgi-bin/
或./htbin/
。
参考: