Python 关于在Tornado web中获取asyncmongo查询结果的问题

Python 关于在Tornado web中获取asyncmongo查询结果的问题,python,mongodb,tornado,Python,Mongodb,Tornado,嗨 我知道对于不熟悉异步方法的用户来说,这是一个常见的问题。。。。 我想使用asyncmongo查询用户id为的db,以检查用户是否登录,但显然这不起作用,我不想在回调中使用self.render 谢谢你的帮助 类主页面(BaseHandler): 使用asyncmongo方法获取当前用户函数: def get_current_user(self): user_id = self.get_secure_cookie("user") if not user_id: return N

嗨 我知道对于不熟悉异步方法的用户来说,这是一个常见的问题。。。。 我想使用asyncmongo查询用户id为的db,以检查用户是否登录,但显然这不起作用,我不想在回调中使用self.render

谢谢你的帮助

类主页面(BaseHandler):

使用asyncmongo方法获取当前用户函数:

def get_current_user(self):
    user_id = self.get_secure_cookie("user")
    if not user_id: return None 
    self.db.users.find({'user_id': bson.ObjectId(str(user_id))}, limit=1, callback=self._on_response)

def _on_response(self, response, error):
    if error:
        raise tornado.web.HTTPError(500)
    how to return the value of response instead of self.render('template',response) ?

请参见

请参见

谢谢,我将使用sync方法获取值。谢谢,我将使用sync方法获取值。
def get_current_user(self):
    user_id = self.get_secure_cookie("user")
    if not user_id: return None 
    self.db.users.find({'user_id': bson.ObjectId(str(user_id))}, limit=1, callback=self._on_response)

def _on_response(self, response, error):
    if error:
        raise tornado.web.HTTPError(500)
    how to return the value of response instead of self.render('template',response) ?
def _on_response(self, response, error):
    if error:
        raise tornado.web.HTTPError(500)
    self.render(str(response))