LoginSignup
2
2

More than 3 years have passed since last update.

Web-WF Python Tornado その1

Last updated at Posted at 2020-08-24

はじめに

webServer APIServerとして、かんたん・すぐれている(と思っている)Tornadoを何回かにわけて紹介したいと思います

Web-WF Python Tornado その1 (この記事
Web-WF Python Tornado その2
Web-WF Python Tornado その3(Openpyexcelの紹介)

対象

フルスタックエンジニア、フロントエンジニア、これから勉強しようと思っている人、Pythonが好きな人

ゴール

今回はインストール〜簡易的なHTMLとJSONを出力できるまで

Tornadoとは

Facebookが開発しているPython webフレームワーク&非同期ネットワークライブラリ
ノンブロッキングネットワークI/Oを使用することにより、Tornadoは数万のオープン接続に拡張できるため、ロングポーリング、WebSocket、および各ユーザーへの長期間の接続を必要とするその他のアプリケーションに最適とのこと(公式

実際に開発に使用していますが、非常に高速で扱いも楽だと思います
(API ServerとしてならFastAPIもオススメです)

インストール

Tornadoのインストールはpipのみ
(python3.6以上がインストールされていること)

$ python -V
Python 3.6.1

$ pip install tornado

pipってとても優秀なやつだと、毎回思います

Hello World

これもまぁ公式なのですが

mainpy
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()

起動&閲覧

ターミナルで

$ python main.py

tornado1-00.png

simple HTML/JSON

さらに、ちょっとコードを加えることで簡易的なHTML/JSONを返すようにしてみます
イメージが膨らむし、これだけで開発の補助ツールにもなりますね

ソース&閲覧

main.py
import tornado.ioloop
import tornado.web
import json

class htmlHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("simple.html")

class jsonHandler(tornado.web.RequestHandler):
    def get(self):
        data = {"hello": "world"}
        self.write(json.dumps(data))

def make_app():
    return tornado.web.Application([
        (r"/html", htmlHandler),
        (r"/json", jsonHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()
simple.html
<!DOCTYPE html>
<html lang="ja">

Hello world.<br />
(This is simple.html)
</html>

tornado1-01.png
tornado1-02.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2