python代码写龙卷风_python装饰功能与多个args(龙卷风)

我写了一个装饰器来认证通话。它只用一个参数就可以正常工作,但更多的时候它不会触发inner() takes exactly 1 argument (2 given)。自从我使用Tornado之后,我有一点回拨意大利面条,但我不确定最好的方法是做什么。

#this works

class FirstHandler(BaseHandler):

@asynchronous

@oauth_machine.auth

def post(self):

print self.user

self.finish()

#this now also does

class SecondHandler(BaseHandler):

@asynchronous

@oauth_machine.auth

def get(self, args):

self.write("ok")

self.finish()装饰器功能(s)

def auth(fn):

def inner(self, *args):

res = get_user_by_credentials(self, fn, args, callback=done_auth)

return inner

def get_user_by_credentials(self, fn, callback):

def onFetchUserCredentials(result, error):

self.user = result

callback(self, fn, args)

email = self.get_argument("email")

password = self.get_argument("password")

settings.DB.users.find_one({'email': email, 'password': password }, callback=onFetchUserCredentials)

def done_auth(result, fn, args):

return fn(result, args)编辑:

更新的代码到工作版本。

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值