关于在Tornado web中获取异步mongo查询结果的问题

时间:2011-04-06 23:17:12

标签: python mongodb tornado

您好     我知道这对于不熟悉异步方法的用户来说是个常见问题....      我想使用asyncmongo查询带有用户ID的数据库来检查用户是否登录,但显然这不起作用,我不想在回调中使用self.render。

感谢您的帮助。

类MainPage(BaseHandler):

def get(self):

    if not self.current_user:
     ####  get no result here 
    .............

使用asyncmongo方法的get_current_user函数:

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) ?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:-3)

def _on_response(self, response, error):
    if error:
        raise tornado.web.HTTPError(500)
    self.render(str(response))