我在Windows上运行Python 3.2.我想在我的机器上运行一个简单的CGI服务器用于测试目的.这是我到目前为止所做的:
我用以下代码创建了一个python程序:
import http.server
import socketserver
PORT = 8000
Handler = http.server.CGIHTTPRequestHandler
httpd = socketserver.TCPServer(("", PORT), Handler)
httpd.serve_forever()
在同一个文件夹中,我创建了一个简单的HTML文件“index.html”.然后我运行程序并在我的Web浏览器中转到http://localhost:8000/,页面显示成功.接下来,我在同一目录中创建了一个名为“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代码?
解决方法:
看一下docs for CGIHTTPRequestHandler,它描述了它如何解决哪些文件是CGI脚本.