Я хочу установить переменные при запуске веб-сервера Tornado, поэтому я попытался переопределить initialize
на моем RequestHandler
классе. Но, видимо, initialize
запускается каждый раз, когда делается запрос, в соответствии со следующим кодом и его выход:Как не вызвать инициализацию при каждом запросе с помощью Tornado
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def initialize(self):
print("Launching initialization...")
def get(self):
print("Get: {}{}".format(self.request.host, self.request.uri))
app = tornado.web.Application([=
(r"/.*", MainHandler)
])
def runserver():
import tornado.ioloop
app.listen(8080)
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
runserver()
стандартный вывод:
~ ➤ ./redirector.py
Launching initialization...
Get: 127.0.0.1:8080/
Launching initialization...
Get: 127.0.0.1:8080/favicon.ico
Launching initialization...
Get: 127.0.0.1:8080/favicon.ico
Launching initialization...
Get: 127.0.0.1:8080/
Такое поведение является полная противоположность тому, что написано в doc:
Крючок для инициализации подкласса.
(Значение это называется в конце __init__
)
Итак, кто-нибудь знает, как сделать то, что я хочу?
Заранее спасибо.