天天看點

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