PythonでTornadoを用いてWebサーバーを使用し単純なWebアプリケーションを表示する

スポンサーリンク

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アプリケーションを表示させることができました。

 

 

コメント

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