У меня есть обработчики, которые обрабатывают запрос с помощью метода get и post, я хочу использовать аутентификацию с помощью моего собственного декоратора, а не самого торнадо @ tornado.web.authenticated decorator , В моем обычном декораторе мне нужно запросить db для идентификации пользователя, но db-запрос в торнадо асинхронно с @ gen.coroutine.Как использовать сопрограмму в пользовательском декораторе при работе с операциями db в торнадо
Мои коды:
handlers.py;
@account.utils.authentication
@gen.coroutine
def get(self, page):
счет/utils.py:
@tornado.gen.coroutine
def authentication(fun):
def test(self,*args, **kwargs ):
print(self)
db = self.application.settings['db']
result = yield db.user.find()
r = yield result.to_list(None)
print(r)
return test
но произошли erros, когда доступ к нему:
Traceback (most recent call last): File "/Users/moonmoonbird/Documents/kuolie/lib/python2.7/site-packages/tornado/web.py", line 1443, in _execute result = method(*self.path_args, **self.path_kwargs) TypeError: 'Future' object is not callable
может кто-нибудь встретить это прежде, чем это правильно способ писать пользовательские декоратор для аутентификации с помощью операции async db? заранее спасибо