首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用旋风保存MotorEngine实例

用旋风保存MotorEngine实例
EN

Stack Overflow用户
提问于 2015-12-03 08:51:16
回答 1查看 131关注 0票数 0

我在使用龙卷风处理程序保存MotorEngine实例时遇到了问题。下面是我为了简洁而缩短的代码的摘录。

如果我将motorengine导入替换为mongoengine,则实例将被正确保存。

代码语言:javascript
复制
# model
from motorengine.document import Document
from motorengine.fields import *

class Test(Document):
    nameTest = StringField(required=True)
    numberTest = DecimalField(required=True)
    boolTest = BooleanField(required=True)

# handler
class TestHandler(BaseHandler):

    @tornado.gen.coroutine
    def post(self, *args, **kwargs):
        response = self._service.save_test()
        print(response)
        self.write('')
        self.finish()

# save method
from models import Test

def save_test(self):
        yield Test.objects.create(nameTest="foobar", boolTest=False, numberTest=123)

我的代码中有明显的错误吗?异步编程不是我的强项。

*编辑:

根据Ben的回答,这是起作用的代码

代码语言:javascript
复制
# handler
@tornado.gen.coroutine
def post(self, *args, **kwargs):
    yield self._service.save_test()

# save method
@tornado.gen.coroutine
def save_test(self):
    yield Test.objects.create(nameTest="foobar", boolTest=False, numberTest=123)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-03 12:35:29

save_test (以及以这种方式使用yield的任何函数)必须有@gen.coroutine装饰器,当您在post()中调用它(或任何其他协同线)时,您必须使用yield save_test()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34061475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档