猿问
下载APP

python tornado中如何给每个服务器请求动态加上装饰器?

tornado是一个服务器框架,,里面有get、put、post、delete请求接口,如何给这些接口动态加上装饰器,比如针对每次调用,进行如:用户是否登陆的校验?如果自己手动进行增减,容易遗漏

倚天杖
浏览 527回答 1
1回答

PIPIONE

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)                                                                                    
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答