こんにちは。sinyです。
この記事では、DjangoやFlaskといったWEBフレームワークを利用せず、pythonを使って以下のような簡易的なwebサーバを構築する手順を紹介します。
pythonの簡易WEBサーバの構成概要
まず、WEBサーバの概要について簡単に説明します。
構成要素は上図の通り4つあります。
- ブラウザ・・・IE,CROMEといったブラウザ
- http.server・・・HTTP (web) サーバを実装するためのクラスを提供してくれます。
- SimpleHTTPRequestHandler:現在のディレクトリ以下にあるファイル(index.htmlなど)を返す簡易的なWebサーバを提供してくれる。
- index.html:WEB画面のソースファイル
※今回はSimpleTHHPRequestHandlerを使ってこのindex.htmlを表示するWebサーバを構築します。
上記4つの構成要素を使って、簡易WEBサーバを構築します。
簡易WEBサーバの実装手順
pythonで簡易WEBサーバを構築する手順はとても簡単です。
以下の流れで実装します。
- http.serverモジュールのSimpleHTTPRequestHandlerクラスを使いWEBサーバのインスタンスを生成
- 生成したWEBサーバインスタンスを常時受け付けモードにする
- pythonコマンドでWEBサーバを起動
コードは以下の通りたったの3行で完了です。
app.pyとして保存しておきましょう。
from http.server import SimpleHTTPRequestHandler, HTTPServer server = HTTPServer(('', 8000), SimpleHTTPRequestHandler) #サーバインスタンスを生成 server.serve_forever() #常時受けつけモードを指定。
1行目で、WEBサーバを構成するために必要なSimpleHTTPRequestHandler, HTTPServerクラスをインポートします。
次に、2行目で以下の通りWEBサーバのインスタンスを生成します。
server = HTTPServer(('', 8000), SimpleHTTPRequestHandler)
HTTPServerクラスの第1引数にはサーバアドレスを、2つ目にはリクエストハンドラーのクラスを指定します。
今回は、第1引数が('', 8000)とし宛先を「http://127.0.0.1:8000/」に指定しています。
第2引数にはSimpleHTTPRequestHandlerを指定します。
最後に3行目のserver.serve_forever()でWEBサーバを常時受け付けモードに指定します。
最後にapp.pyと同じディレクトリ上に以下のような簡素なhtmlファイル(index.html)を作成しておきましょう。
<!doctype html> <html lang="ja"> <head> <title>TOPページ</title> <meta charset="utf-8"> </head> <body> <h1>WEBデモページ</h1> <p>python製簡易WEBサーバのデモページです。</p> </body> </html>
簡易WEBサーバを起動するには以下のコマンドを実行します。
python app.py
http://127.0.0.1:8000/にアクセスして以下のようなWEB画面が表示されればOKです。
以上、「たったの3行でpython簡易webサーバを構築する手順【入門者向け】」でした。