技术提示:使用 Python 的超简单 HTTP 服务器
发布于 2009年9月22日
如果您需要快速运行一个 Web 服务器,并且不想麻烦地设置 Apache 或类似的东西,那么 Python 可以帮到您。Python 自带一个简单的内置 HTTP 服务器。借助这个小小的 HTTP 服务器,您可以将系统中的任何目录变成您的 Web 服务器目录。您只需要安装 Python。
实际上,这对于在本地网络中共享文件非常有用。实现这个小巧但非常有用的 HTTP 服务器非常简单,只需一行命令即可。
假设我想共享目录/home/hisam并且我的 IP 地址是 192.168.1.2
打开终端并输入
$ cd /home/somedir
$ python -m SimpleHTTPServer
就是这样!现在您的 HTTP 服务器将在 8000 端口启动。您将收到以下消息
Serving HTTP on 0.0.0.0 port 8000 ...
现在打开浏览器并输入以下地址
http://192.168.1.2:8000
您也可以通过以下方式访问它
http://127.0.0.1:8000
如果该目录有一个名为index.html的文件,则该文件将作为初始文件提供。如果没有index.html,则将列出目录中的文件。
如果您想更改使用的端口,请通过以下方式启动程序
$ python -m SimpleHTTPServer 8080
如果您只想在 localhost 上提供服务,您需要编写一个自定义 Python 程序,例如
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
if sys.argv[1:]:
port = int(sys.argv[1])
else:
port = 8000
server_address = ('127.0.0.1', port)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
另请注意,这也应该在 Windows 或 Cygwin 上工作。