非常简单的Python HTTP服务
如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等。那么, Python 可能帮助你。使用Python可以完成一个简单的内建 HTTP 服务器。于是,你可以把你的目录和文件都以HTTP的方式展示出来。佻只需要干一件事情,那就是安装一个Python。
实际上来说,这是一个可以用来共享文件的非常有用的方式。实现一个微型的HTTP服务程序来说是很简单的事情,在Python下,只需要一个命令行。下面是这个命令行:(假设我们需要共享我们的目录 /home/haoel 而IP地址是192.168.1.1)
$ cd /home/haoel $ python -m SimpleHTTPServer
这就行了,而我们的HTTP服务在8000号端口上侦听。你会得到下面的信息:
Serving HTTP on 0.0.0.0 port 8000 ...
你可以打开你的浏览器(IE或Firefox),然后输入下面的URL:
http://192.168.1.1:8000
如果你的目录下有一个叫 index.html 的文件名的文件,那么这个文件就会成为一个默认页,如果没有这个文件,那么,目录列表就会显示出来。
如果你想改变端口号,你可以使用如下的命令:
$ python -m SimpleHTTPServer 8080
如果你只想让这个HTTP服务器服务于本地环境,那么,你需要定制一下你的Python的程序,下面是一个示例:
[py]
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()
[/py]
注意:所有的这些东西都可以在 Windows 或 Cygwin 下工作。
(转载本站文章请注明作者和出处 宝酷 – sou-ip ,请勿用于任何商业用途)
《非常简单的Python HTTP服务》的相关评论
一般的linux发行版都自带python,就更方便了,我一直哪这个共享文件,都已经做了alias了
还有个支持cgi的,python -m CGIHTTPServer,程序放在cgi-bin下就好
哈哈 菜鸟转载一下哈。
via: http://stackoverflow.com/questions/7943751/what-is-the-python3-equivalent-of-python-m-simplehttpserver
The SimpleHTTPServer module has been merged into http.server in Python 3.0. The 2to3 tool will automatically adapt imports when converting your sources to 3.0.
So, your command is python3 -m http.server.
python3里SimpleHTTPServer被移到 http.server里了。在python3下需要执行python -m http.server
刚用这个在我的内存很小的vps上整了一个站,放了一个Html,效果还不错。
Python3 的模块变了, Python3 的用法
python3 -m http.server 8080
there is nothing to consider
学习了,非常感谢分享
感谢楼主分享,转载了。
学习了,谢谢分享
很早就关注这个网站了,有关计算机的内容很专业的,加油。
很好的文章,谢谢分享,顺便给大家分享一篇很好的VPN测评网站:https://topvpn.world/
脚本做了一个py3兼容,虽然没必要
#!/bin/python
–– coding: utf-8 ––
脚本兼容py2 py3
import sys
try:
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
except ImportError:
from http.server import HTTPServer
from http.server import SimpleHTTPRequestHandler
print(“\ncurrent version: %s\n” % sys.version)
HandlerClass = SimpleHTTPRequestHandler
ServerClass = 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()
播主的内容写得非常的专业呢!
可以用来作为本地服务器调试。
可以与任何Web服务器进行交互了
必看的35场 TED 演讲合集 >https://001vpn.com/ted