我刚刚开始了一个使用 Tornado 和 asyncmongo 的项目。
我有一个带有异步方法的处理程序。在里面我正在向 mongo 查询一些单词:
@tornado.web.asynchronous
def get(self):
word = self.get_argument('word', None)
if not word:
self.write('{}')
self.finish()
self.db.spanish_dict.find({'$or': [{'word': word}, {'stem': word}]},
callback=self._on_response)
def _on_response(self, response, error):
# need to sort response by relevancy
在我的回调方法中,我需要原始单词来准确地对 mongo 结果进行排序。
我发现这篇文章用于functools.partial
完成此任务,允许我将其他参数传递给回调方法
get
我想知道在方法中设置实例属性并在其中访问它是否有任何不利影响_on_response
?谢谢你
@tornado.web.asynchronous
def get(self):
word = self.get_argument('word', None)
if not word:
self.write('{}')
self.finish()
self.word = word
self.db.spanish_dict.find({'$or': [{'word': word}, {'stem': word}]},
callback=self._on_response)
def _on_response(self, response, error):
# need to sort response by relevancy
# will self.word always be accurate?
self.word