如何将装饰器叠加在Cyclone中的defer.inlineCallback之上?

2024-04-28 08:24:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想装饰post/get/。。。我的Cyclone请求处理程序中的方法,使用以下简单的装饰器:

def json_errors(fun):
    def x(self, *args, **kwargs):
        try:
            rv = fun(self, *args, **kwargs)
            return rv
        except cyclone.web.HTTPError, e:
            self.set_status(e.status_code)
            self.set_header('Content-Type', 'application/json')
            self.write(e.log_message)
            self.finish()
    return x

但是,因为我的post/get/。。。方法已经用defer.inlineCallbacks修饰过了我得到了各种与延迟相关的错误,不管我是将修饰器放在@defer.inlineCallbacks之前还是之后

如何添加我的装饰器


Tags: 方法selfjsongetreturndefstatusargs