定义Application类的子类,在子类里添加属性。
.
1. 自定义ShopApplication类,继承Application类(不要忘记在ShopApplication.__init__里调用super().__init__)
.
class ShopApplication(Application):
def __init__(self, handlers, **settings):
self.mysql_conn = None
self.redis_client = None
self.mongo_client = None
.
self.init_db()
.
super().__init__(handlers, **settings)
.
def init_db(self):
// initialize db connections
.
2. 使用ShopApplication类提供服务
.
app = ShopApplication(urlmap, debug=True)
app.listen(8080)
IOLoop.current().start()
.
.
.
总结:
1. 由于Tornado运行期间Application类是单例的,在整个Web应用的生命周期范围内都存在
2. RequestHandler类持有对Application类的引用,在Handler函数内部可以调用self.application得到Application类的实例,可通过self.application.mysql_conn、self.application.redis_client、self.application.mongo_client这些属性
.
1. 自定义ShopApplication类,继承Application类(不要忘记在ShopApplication.__init__里调用super().__init__)
.
class ShopApplication(Application):
def __init__(self, handlers, **settings):
self.mysql_conn = None
self.redis_client = None
self.mongo_client = None
.
self.init_db()
.
super().__init__(handlers, **settings)
.
def init_db(self):
// initialize db connections
.
2. 使用ShopApplication类提供服务
.
app = ShopApplication(urlmap, debug=True)
app.listen(8080)
IOLoop.current().start()
.
.
.
总结:
1. 由于Tornado运行期间Application类是单例的,在整个Web应用的生命周期范围内都存在
2. RequestHandler类持有对Application类的引用,在Handler函数内部可以调用self.application得到Application类的实例,可通过self.application.mysql_conn、self.application.redis_client、self.application.mongo_client这些属性



