はじめに
webServer APIServerとして、かんたん・すぐれている(と思っている)Tornadoを何回かにわけて紹介したいと思います
Web-WF Python Tornado その1 (この記事
Web-WF Python Tornado その2
[Web-WF Python Tornado その3(Openpyexcelの紹介)]
(https://qiita.com/sin_hayasi/private/55b4314f3190cdf2f2ec)
対象
フルスタックエンジニア、フロントエンジニア、これから勉強しようと思っている人、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
これもまぁ公式なのですが
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
simple HTML/JSON
さらに、ちょっとコードを加えることで簡易的なHTML/JSONを返すようにしてみます
イメージが膨らむし、これだけで開発の補助ツールにもなりますね
ソース&閲覧
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()
<!DOCTYPE html>
<html lang="ja">
Hello world.<br />
(This is simple.html)
</html>