1 回答

TA貢獻1829條經驗 獲得超9個贊
tornado在RequestHandler中提供了 prepare和finish這樣的方法。prepare在框架調用get/post/...這些方法之前調用。finish在最終寫回response時由框架調用。所以可以利用這個實現類似 django中middleware的功能。比如登錄檢查,權限驗證,修改response的結果都可以在middleware中完成。
class Middleware(object):
def process_request(self, handler):
pass
def process_response(self, handler):
pass
def prepare(self):
for middle in self.application.middleware:
middle.process_request(self)
super(MyRequestHandler, self).prepare()
def finish(self):
for middle in self.application.middleware:
middle.process_response(self)
添加回答
舉報