1

我正在编写一个 Tornado Rest API,并且我正在使用 mongoengine 作为 ODM。我想让事情尽可能地解耦。我不希望我的代码在处理程序中的原因是我想让一些函数异步。

这是最好的方法吗?:(只是伪代码)

class UserSearchHandler(BaseHandler):

   @tornado.web.asynchronous
   @gen.coroutine
   def get(self):
     q = self.get_argument("query",strip=True)
     results = yield gen.Task(Node.search,q)
     self.write(results)
Mongoengine 内部
  class User(Docuement):
     first_name = StringField(max_length=50)
     last_name = StringField(max_length=50)

     @async
     def search(q,callback=None):
         if callback != None:
            return callback(User.objects(..magic))
         return User.objects(....)
         ...return some search query as json

将成员函数添加到 ODM 是否有意义?

4

0 回答 0