Pythonでfalconを用いて簡単なWSGI アプリを作成する

スポンサーリンク

Pythonでfalconを用いて簡単なWSGI アプリを作成してみます。

今回はfalconを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

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

■Pythonでfalconを用いて簡単なWSGI アプリを作成する

では、早速Pythonでfalconを用いて簡単なWSGI アプリを作成するスクリプトを書いていきます。

■コード

from wsgiref.simple_server import make_server

import falcon

class TestResource:
    def on_get(self, req, resp):
        """GET リクエストを処理する"""
        resp.status = falcon.HTTP_200  # デフォルトの状態
        resp.content_type = falcon.MEDIA_TEXT  # デフォルトはJSONなので上書きする
        resp.text = ('\nこれはテストです。 '
                     '大阪在住\n'
                     'プログラマー\n'
                     '    著者:田中\n\n')


# falcon.Appインスタンスは、呼び出し可能なWSGIアプリ
# 大規模なアプリケーションではアプリは別のファイルに作成
app = falcon.App()

# リソースはlong-lived classインスタンスで表現される
test = TestResource()

# test は '/test' URL パスへのすべてのリクエストを処理します。
app.add_route('/test', test)

if __name__ == '__main__':
    with make_server('', 8000, app) as httpd:
        print('Serving on port 8000...')

        #プロセスが終了するまで保存
        httpd.serve_forever()

「from wsgiref.simple_server import make_server」で新しいWSGI サーバーを作成できるようにします。TestResourceというclassを宣言し、その中でon_getという関数をdef文を用いて定義。関数では、GETリクエストを処理する。次に「app = falcon.App()」でインスタンス化を行います。次にtestを定義し、その中にTestResourceというclassを格納します。格納後、add_route()を用います。括弧内には引数,パラメータとして「/test」を渡し、ルートに「/test」を追加し、URIに関連付けるリソースとしてtestを渡します。その後、make_server()を用いて新しいWSGI サーバーを作成し、アプリを起動します。

■実行・検証

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

Serving on port 8000...

実行してみると、「Serving on port 8000…」と出力され、WSGI サーバーが稼働中となりますので、Webブラウザを起動し、「http://localhost:8000/test」とアドレスバーに入力しアクセスします。

アクセスすると、GET リクエストが処理されon_getという関数内に記述したtextが出力されることを確認できました。

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

コメント

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