Skip to main content
 首页 » 编程设计

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

2025年05月04日38me-sa

嗨 我知道对于不熟悉异步方法的用户来说这是一个常见问题.... 我想使用 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) ? 

请您参考如下方法: