PythonでTornadoを用いてWebサーバーを使用し単純なWebアプリケーションを表示してみます。
今回は、Tornadoモジュールを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■Tornadoを用いてWebサーバーを使用し単純なWebアプリケーションを表示する
では、早速Tornadoを用いてWebサーバーを使用し単純なWebアプリケーションを表示するスクリプトを書いていきます。
■コード
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("こんにちは、世界!") def make_app(): return tornado.web.Application([ (r"/",MainHandler) ]) if __name__ == "__main__": app = make_app() app.listen(8888) tornado.ioloop.IOLoop.current().start()
「class MainHandler(tornado.web.RequestHandler):」が、HTTPリクエストハンドラの基本クラス。ハンドラは、処理要求が発生した場合に起動される。起動した場合にdef文で定義されたget()関数を呼び出し、処理が実行される。今回はwrite()関数を用いて、日本語の文字列を書き込みする。
「def make_app():」では、def文でmake_app()関数を定義し、return でtornado.web.Application()関数を呼び出し結果を返す。tornado.web.Application()は、Webアプリケーションを構成するリクエストハンドラーのコレクション。アプリケーションにサービスを提供するためにHTTPServerに直接渡す。
「if __name__ == “__main__”:」を用い、app変数を定義し、その中にmake_app()を格納。格納後、さらにlisten()関数を用いて、指定されたポートでアプリケーションのHTTPサーバーを起動します。関数の括弧内には、今回「8888」と設定しポートを渡します。
HTTPサーバーを起動後、tornado.ioloop.IOLoop.current().start()を用いて、ループを開始します。
■実行・検証
このスクリプトを「t_web_app.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、何も出力されませんが、HTTPサーバーが起動した状態になっていますので、コマンドプロンプトは開いた状態で、Webブラウザを起動します。起動後、アドレスバーに「http://localhost:8888/」と入力し、アクセスします。
アクセスすると、単純なWebアプリケーションを表示させることができました。
コメント