标题: python自带的http服务器

时间: 2014-12-20 20:07:57

正文:

跟 php 里的内置http server 类似, python 也自带简单的 http server 模块 SimpleHTTPServer 等(需要特别注意 python 3 中没有了, 融合到了 http.server 中), 可以把当前目录作为 web server 的根目录跑起来:

python -m SimpleHTTPServer 8080

上面指定了 8080 端口, 不指定则默认 8000 端口. 注意着时候只是简单的静态服务的 web server , 不能执行 .py 脚本( CGI 模式).

        转载请注明出处 http://blog.hickwu.com/posts/333 by Hick

需要直接执行 .py 文件需要下面这样以 CGI 方式跑起来:

首先是启动 CGI http server, 文件 http.py :

#encoding=utf-8
from CGIHTTPServer import CGIHTTPRequestHandler
from BaseHTTPServer import HTTPServer
server_addr = ('',8000)
httpd = HTTPServer(server_addr,CGIHTTPRequestHandler)
httpd.serve_forever()

然后在同目录新建 cgi-bin 目录, 并新建 hick.py , 内容如下:

#encoding=utf-8
#!/usr/bin/python
import cgi

# 获取 GET 参数
form = cgi.FieldStorage()
name = form['name'].value

print "HTTP/1.0 200 OK"
print "Content-Type:text/html"
print ""
print ""
print "Hello, 世界, %s " % name
print ""

linux 下可能需要改变该文件权限为可执行. windows 下可以直接跑起来 python http.py , 浏览器访问 http://127.0.0.1:8000/cgi-bin/hick.py?name=hick 即可看到输出效果.

上面也包括获取 GET 参数的示例, 更多 POST 等其他 http 处理参见参考下面的 Python CGI Programming

参考资料:

查看更多文章
分享到:


分享到: