Python: SimpleHTTPServerでWebサーバをたてる

Python のみでWebサーバを提供できるのでその動作確認。今回は下記SimpleHTTPServerモジュールを使用する。

import SimpleHTTPServer
SimpleHTTPServer.test()

上記コードを実行すると下記のようにWebサーバをポート8000番(デフォルト)で提供する。

pydev debugger: starting
Serving HTTP on 0.0.0.0 port 8000 ...

この状態でループバックアドレス(localhost)にアクセスすると下記のように、稼働しているスクリプトがドキュメントルートとして設定されていることが分かる。(今回はEclipse+pydevのworkspaceから実行したのでそれ関連のファイルやフォルダが並んでいる。)
python_SimpleHTTPServer_test
その際、SimpleHTTPServerの実行コンソールはアクセス時のログを出力する。favicon.icoが無いとの404メッセージが出力されているが、当然favicon.icoは設定してないので当該メッセージは静観する。

pydev debugger: starting
Serving HTTP on 0.0.0.0 port 8000 ...
1.0.0.127.in-addr.arpa - - [09/Feb/2013 19:18:27] "GET / HTTP/1.1" 200 -
1.0.0.127.in-addr.arpa - - [09/Feb/2013 19:18:27] code 404, message File not found
1.0.0.127.in-addr.arpa - - [09/Feb/2013 19:18:27] "GET /favicon.ico HTTP/1.1" 404 -

続いてスクリプトと同階層フォルダにindex.htmlのファイル名で下記のHTMLを設置する。

<html><body>
Hello World!
</body></html>

再度、localhostにアクセスすると下記のようにindex.htmlの内容が表示される。(SimpleHTTPServerのDirectoryIndexにindex.htmlが設定されているため。)
Python_SimpleHTTPServer_test_html

参考サイト

コメント

  1. […]  尚、上記の方法はpython2系のみの可能性があります。python3系を使用している場合は、Windowsでの方法と同じく「python -m http.server」をお試しください。pythonのバージョンはターミナル上で「python -V」と入力すると確認できます。また、参考までにMacでpython3系に切り替える方法についてリンクを紹介します。https://yukun.info/python-simplehttpserver/ […]