如何使用python http.server运行CGI"hello world"

Yur*_*ura 16 python cgi http python-3.x

我使用的是Windows 7和Python 3.4.3.我想在浏览器中运行这个简单的helloworld.py文件:

print('Content-Type: text/html')
print( '<html>')
print( '<head></head>')
print( '<body>')
print( '<h2>Hello World</h2>')
print( '</body></html>')
Run Code Online (Sandbox Code Playgroud)

我所做的是:

1)转到命令行C:\Python(安装python的地方)

2)运行: python -m http.server

3)到Firefox并输入 http://localhost:8000/hello.py

但是,浏览器只打印hello.py文件的内容,而不是"Hello World".

我该如何解决?

jfs*_*jfs 16

http.server文档:

CGIHTTPRequestHandler可以通过传递--cgi选项在命令行中启用:

$ python3 -m http.server --bind localhost --cgi 8000
Run Code Online (Sandbox Code Playgroud)

把你的脚本放入cgi_directories:

这默认为['/cgi-bin', '/htbin']并描述了要视为包含CGI脚本的目录.

在浏览器中打开:

$ python -mwebbrowser http://localhost:8000/cgi-bin/hello.py
Run Code Online (Sandbox Code Playgroud)

其中hello.py:

#!/usr/bin/env python3
print("Content-Type: text/html\n")
print("<!doctype html><title>Hello</title><h2>hello world</h2>")
Run Code Online (Sandbox Code Playgroud)

我必须让它在POSIX上可执行:chmod +x cgi-bin/hello.py.