Tornadoをデバッグモード、オートリロードで稼働させる

tornado

Wikipediaにも「Pythonで書かれたスケーラブルでノンブロッキングなWebサーバ、Webフレームワーク」と書かれたTornadoのデバッグモードをオンにしてファイルの変更を検知してリロードしてくれるようにするやり方。

import tornado.ioloop
import tornado.web


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

application = tornado.web.Application(
    [
        (r"/", MainHandler),
    ],
    debug=True
)

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

ほとんどサンプルのまんまです。

debug=True だけでオートリロードもしてくれます。簡単。これだとデバッグモード切り替えで都度コードの書き換えが必要になるのでコマンドライン引数で振る舞い変えるようにしたほうがいいでしょうね。

TornadoはPython3.2以降にも対応してるので安心です。