読者です 読者をやめる 読者になる 読者になる

Keep on moving

あんまりまとまってないことを書きますよ

Tornadoでautoreload

python Tornado

Tornado Web ServerでもWerkzeugrun_simple()みたいにソース更新するたびにTornadoをリロードできるようにしたい。そういう場合にはautoreloadを使うようです。

ただソースを読んでも使い方を書いていないのでよくわかりません。
TorndoのMLを読んでみたところコード例がありました。
http://groups.google.co.jp/group/python-tornado/browse_thread/thread/6a4839f2df63a42d/73b6acf264dcc7fd?lnk=gst&q=autoreload#73b6acf264dcc7fd
これを使うことで、開発する時にはかなりストレスが減らせそうです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.autoreload

from tornado.options import define, options

define("port", default=8888, help="run on the given port", type=int)


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

class Application(tornado.web.Application):
    def __init__(self):
        handlers = [
            (r"/", MainHandler),
            ]
        # settingsでdebugをTrueに設定。設定はこれだけ。
        settings = dict(
            debug=True
            )
        tornado.web.Application.__init__(self,handlers,**settings)

def main():
    tornado.options.parse_command_line()

    http_server = tornado.httpserver.HTTPServer(Application())
    http_server.listen(options.port)

    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()