latest doc中的Motor
教程展示了如何通过tornado.gen.couroutine
获取多个文档:
@tornado.gen.coroutine
def do_find():
cursor = db.test_collection.find({'i': {'$lt': 5}})
for document in (yield cursor.to_list(length=100)):
print document
然后同步演示输出:
IOLoop.current().run_sync(do_find)
如何更改此功能以便我可以在异步handler
内调用它并获取文档列表?
答案 0 :(得分:0)
像这样:
class AdminHandler(tornado.web.RequestHandler):
@tornado.gen.coroutine
def get_users(self):
cursor = self.mc.web_app.user.find()
users = [user['email'] for user in (yield cursor.to_list(length=1000))]
raise tornado.gen.Return(users)
@tornado.gen.coroutine
def get(self):
self.xsrf_token
users = yield self.get_users()
self.render('main/index.html', users=users)