我如何设置Python CGI服务器?

我在Windows上运行Python 3.2。 我想在我的机器上运行一个简单的CGI服务器来进行testing。 以下是我迄今为止所做的:

我用下面的代码创build了一个python程序:

import http.server import socketserver PORT = 8000 Handler = http.server.CGIHTTPRequestHandler httpd = socketserver.TCPServer(("", PORT), Handler) httpd.serve_forever() 

在同一个文件夹中,我创build了一个简单的HTML文件“index.html”。 然后运行该程序,并在我的Web浏览器中转到http:// localhost:8000 / ,并成功显示该页面。 接下来我在同一个目录下创build一个名为“hello.py”的文件,代码如下:

 import cgi import cgitb cgitb.enable() print("Content-Type: text/html;charset=utf-8") print() print("""<html><body><p>Hello World!</p></body></html>""") 

现在,如果我去http:// localhost:8000 / hello.py ,我的网页浏览器会显示上面的完整代码,而不是“Hello World!”。 在提供之前,如何让python执行CGI代码?

看看CGIHTTPRequestHandler的文档 ,它描述了CGI脚本是如何处理的。

虽然不官方弃用,但cgi模块有点笨重, 这些天大部分人都在使用别的东西(别的东西!)

例如,您可以使用wsgi接口以便于在许多http服务器中轻松高效地服务的方式编写脚本。 为了让你开始,你甚至可以使用内置的wsgiref处理程序。

 def application(environ, start_response): start_response([('content-type', 'text/html;charset=utf-8')]) return ['<html><body><p>Hello World!</p></body></html>'.encode('utf-8')] 

并提供服务(可能在同一个文件中):

 import wsgiref.simple_server server = wsgiref.simple_server.make_server('', 8000, application) server.serve_forever()