2
我想在启动我的Tornado网络服务器时设置变量,所以我试图覆盖我的RequestHandler
类中的initialize
。但很显然,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__
末)
因此,没有任何人知道该怎么做我想做什么?
在此先感谢。