天天看点

Python内置的HTTP协议服务器SimpleHTTPServer使用指南

这篇文章主要介绍了Python内置的HTTP协议服务器SimpleHTTPServer使用指南,SimpleHTTPServer本身的功能十分简单,文中介绍了需要的朋友可以参考下

首先确保装了Python,我装的是2.x版本,对了,我的操作系统是WIN7,其实对于Python来说,什么操作系统并不重要。Python内置了一个简单的HTTP服务器,只需要在命令行下面敲一行命令,一个HTTP服务器就起来了:

<code>python </code><code>-</code><code>m SimpleHTTPServer </code><code>80</code>

后面的80端口是可选的,不填会采用缺省端口8000。注意,这会将当前所在的文件夹设置为默认的Web目录,试着在浏览器敲入本机地址:

http://localhost:80

<code>import</code> <code>SimpleHTTPServer</code>

<code>import</code> <code>SocketServer</code>

<code> </code> 

<code>PORT </code><code>=</code> <code>8000</code>

<code>Handler </code><code>=</code> <code>SimpleHTTPServer.SimpleHTTPRequestHandler</code>

<code>httpd </code><code>=</code> <code>SocketServer.TCPServer(("", PORT), Handler)</code>

<code>print</code> <code>"serving at port"</code><code>, PORT</code>

<code>httpd.serve_forever()</code>

如果你想改变端口号,你可以使用如下的命令: 

<code>python </code><code>-</code><code>m SimpleHTTPServer </code><code>8080</code>

如果你只想让这个HTTP服务器服务于本地环境,那么,你需要定制一下你的Python的程序,下面是一个示例:

<code>import</code> <code>sys </code>

<code>import</code> <code>BaseHTTPServer </code>

<code>from</code> <code>SimpleHTTPServer </code><code>import</code> <code>SimpleHTTPRequestHandler </code>

<code>HandlerClass </code><code>=</code> <code>SimpleHTTPRequestHandler </code>

<code>ServerClass </code><code>=</code> <code>BaseHTTPServer.HTTPServer </code>

<code>Protocol </code><code>=</code> <code>"HTTP/1.0"</code>

<code>  </code> 

<code>if</code> <code>sys.argv[</code><code>1</code><code>:]: </code>

<code>  </code><code>port </code><code>=</code> <code>int</code><code>(sys.argv[</code><code>1</code><code>]) </code>

<code>else</code><code>: </code>

<code>  </code><code>port </code><code>=</code> <code>8000</code>

<code>server_address </code><code>=</code> <code>(</code><code>'127.0.0.1'</code><code>, port) </code>

<code>HandlerClass.protocol_version </code><code>=</code> <code>Protocol </code>

<code>httpd </code><code>=</code> <code>ServerClass(server_address, HandlerClass) </code>

<code>sa </code><code>=</code> <code>httpd.socket.getsockname() </code>

<code>print</code> <code>"Serving HTTP on"</code><code>, sa[</code><code>0</code><code>], </code><code>"port"</code><code>, sa[</code><code>1</code><code>], </code><code>"..."</code>

注意:所有的这些东西都可以在 Windows 或 Cygwin 下工作。

本文转自 Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1980603