PythonのWebフレームワークTornadoをわかりやすく解説!

Pythonにはさまざまフレームワークがありますが、PythonのWebフレームワークであるTornadoは他のWebフレームワークと比べても大きく異なる点があります。

「Tornadoについて詳しく知りたい」
「Tornadoの特徴を知りたい」
「Tornadoのインストール方法を知りたい」
「Tornadoの使い方について知りたい」

といった方に向けてこの記事では以下の内容を解説していきます。


Tornadoとは
Tornadoの特徴
Tornadoのインストール
Tornadoの使い方

Tornadoについて詳しく解説していますので、ぜひ参考にしてください!

Tornadoとは


http://www.tornadoweb.org/en/stable/#
Tornadoとは、どのようなWebフレームワークなのでしょうか?

Tornadoの公式サイトによると、以下のように説明されています。

TornadoはFriendFeedで開発されたPythonのWebフレームワーク(非同期通信ライブラリ)です。
ノンブロッキングネットワークI / Oを使用することで、Tornadoは数万のオープン接続に拡張でき、ロングポーリング、WebSocket、および各ユーザーへの長時間の接続が必要なその他のアプリケーションに最適です。

次項ではそんなTornadoの特徴を具体的に説明していきます。

Tornadoの特徴

Tornadoは他のPythonのWebフレームワークとは大きく異なります。

TornadoはPythonで作られたWebフレームワークで、非同期通信を行うライブラリでもあります。

非同期通信とは、その名の通りネットワークで接続されているサーバーとアプリケーションが同期を取らずに通信を行う方式で、リクエストを送信してからレスポンスが来るまでの間に他の処理が実行できるというメリットがあります。

WSGIに基づいていないことも大きな特徴です。

WSGI(Web Server Gateway Interface)とはPythonでWebサーバーとWebアプリケーションを接続するためのインタフェースを定義することを言います。

また、基本的にプロセスごとに1つのスレッドで実行されます。

パフォーマンスが高いことも大きな特徴で、以下はPythonと他のサーバを比べたベンチマークとなります。

出典:wikipedia

Tornadoが圧倒的に高いことがわかりますね!

Tornadoのインストール

それでは実際にTornadoをインストールしてみましょう。

Tornadoのインストールはターミナルからpipコマンドを使用して行います。

$ pip install tornado

インストールされたか確認する場合はpip listコマンドを実行します。

$ pip list |grep tornado
tornado                            5.0.2 

無事インストールされていますね!

Tornadoの使い方

Tornadoをインストールしたら、tornadoをインポートして使用します。

「Hello, world」を出力するためには、公式で紹介されている以下のプログラムに名前をつけて、保存及び実行します。(ここではsample.pyとします)

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

ファイルを作成したら保存して実行します。

 python3 sample.py

この状態でブラウザ上で「http://localhost:8888/」にアクセスすれば、以下のようにHello, worldが出力されます。

Tornadoの詳しい使い方についてはUser’sガイドに詳細が記載されていますので参考にしてください。
http://www.tornadoweb.org/en/stable/guide.html

Pythonのフレームワーク

Pythonのその他のフレームサークについては、以下の記事で紹介しています!

【Python】フレームワークFlaskの基本をマスター
更新日 : 2019年8月7日
Chainerとは?概要から導入方法までをわかりやすく解説!
更新日 : 2020年5月8日

まとめ

ここではPythonのWebフレームワークであるTornadoについて、以下の内容を解説しました。

  • Tornadoとは
  • Tornadoの特徴
  • Tornadoのインストール
  • Tornadoの使い方

TornadoはFlaskやChainerに比べてまだ認知度低いですが、パフォーマンスが高く、使い勝手も良いので興味のある方はぜひ試してみてください。

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

侍テック編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー