Subscribed unsubscribe Subscribe Subscribe

SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

Pythonならたった一行でWebサーバを建てられる

Python

ローカルにwebサーバを建てたいと思った際、わざわざApache入れて云々せずともPythonならたった一行のコマンドで非常に簡易なWebサーバを建てることが出来る。モジュールを直接指定する「python -m SimpleHTTPServer」コマンドをインタプリタで打ち込むことで、Webサーバが以下のように立ち上がる

sotoshigoto@sot0:~$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
127.0.0.1 - - [25/Dec/2014 20:11:38] "GET / HTTP/1.1" 200 -

また、ポートはデフォルトで8000となっているが、以下のように直接ポート番号を指定することも出来る。

python -m SimpleHTTPServer 8080

このWebサーバは、カレントディレクトリ以下のファイル一覧が下の図のように表示され、各フォルダをweb上から閲覧可能となり、簡易的な共有ファイルサーバとして利用することが出来る。また、カレントディレクトリにindex.htmlが配置されている場合は、そのhtmlがweb上に表示される。

f:id:fixxman:20141225202637p:plain

インタプリタでコマンドを叩くのが極めて簡単なやり方になるが、それを実現する実際のコードは以下のようになる。

import SimpleHTTPServer
import SocketServer

PORT = 8000

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "serving at port", PORT
httpd.serve_forever()

このようにPythonでは簡易的かつ初歩的ではあるが、Webサーバーを簡単に立ち上げられるような仕組みが組み込まれており、簡単な検証をローカルWebサーバーで行う際は自分自身で一からサーバーを立ち上げることもなく既に提供されているもので実現可能となる。

Remove all ads