Pythonでwsgirefを用いてシンプルな WSGI HTTP サーバーを作成する

スポンサーリンク

Pythonでwsgirefを用いてシンプルな WSGI HTTP サーバーを作成してみます。

今回はwsgirefを用います。wsgirefは、Pythonの標準ライブラリに組み込まれた WSGI 仕様の参照実装であり、WSGI サーバーとアプリケーションの構築に使用できる。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■wsgirefを用いてシンプルな WSGI HTTP サーバーを作成する

では、早速wsgirefを用いてシンプルな WSGI HTTP サーバーを作成するスクリプトを書いていきます。

■コード

from wsgiref.simple_server import make_server, demo_app

httpd = make_server('',8000, demo_app)

print("ポート8000でHTTPを提供中")

# プロセスが強制終了されるまでリクエストに応答する
httpd.serve_forever()

まずは「from import」で、wsgiref.simple_server(WSGI アプリケーションを提供する単純なHTTP サーバー (BaseHTTPServerに基づく)を実装)をインポートし、さらに新しい WSGI サーバーを作成するためにmake_serverと、小さいデモのWSGI アプリケーションであるdemo_appを呼び出します。

その後、httpdという変数を定義し、その中でmake_server()を用います。括弧内には第1の引数,パラメータ(host=)としてホストを渡しますが、今回は「”(空の状態)」を渡します。第2の引数,パラメータ(port=)としてポートを渡します。今回は「8000」を渡します(8000は、通常、代替 HTTP ポートとして使用される)。第3の引数,パラメータ(app=)としてアプリを渡します。今回は「demo_app」を渡します。これで新しい WSGI サーバーが作成されます。

■実行・検証

このスクリプトを「wsgi_test.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、スクリプトに記述したprint()の括弧内に渡した文字列が出力されました。これで作成したWSGI サーバーが稼働中となりますので、Webブラウザを起動し、「http://localhost:8000/」とアドレスバーに入力しアクセスします。

アクセスすると、「Hello world!」や「ALLUSERSPROFILE」などが出力され、作成したWSGI サーバーにアクセスできることが確認できました。

確認後、コマンドプロンプトを確認すると、200と出力され、リクエストに成功し要求通りの情報がレスポンスされている状態となっていることも確認できた。

コメント

タイトルとURLをコピーしました