我试图在我的Tornado应用程序中切换MongoEngine和MotorEngine,以实现异步数据库访问,但到目前为止我还是一无所获。在
query
@gen.coroutine
def get_all_users(self):
users = yield User.objects.find_all()
handler
当我打印ret
变量时,它显示<tornado.concurrent.Future object at 0x7fb0236fe450>
。如果我想打印ret.result()
,那我就一事无成了。在
任何帮助都是值得感谢的,因为我正在与我所想的一切作斗争。。。在
只是个建议。如果希望避免每次使用userMethods方法时都创建其实例:
在声明
^{pr2}$@classmethod
修饰符之前,可以使用它:所有用户都需要以某种方式返回它的值。在Python2.6或2.7中,生成器不允许使用“return”语句,因此协程有一个特殊的“return”异常:
在Python3.3及更高版本中,您可以简单地“返回用户”。在
现在在“get”中,调用“get-unu-all-yu-users”只会给你一个悬而未决的未来,而不是一个价值。您必须等待未来通过产生该值来解析它:
^{pr2}$有关从协同例程调用协同例程的更多信息,请参阅my"Refactoring Tornado Coroutines"。在
顺便说一下,你可以用通用协同程序,它比“异步”更现代发电机发动机“,但这两种风格都有效。在
相关问题 更多 >
编程相关推荐