LINUX.ORG.RU

Непонимание асинхронности, motor, tornado

 , , ,


0

2

Добрый день! Решился поковырять новое для себя - монго и торнадо. Монго используется через motor, на его сайте нашел 2 примера хеллоуворлдов. Первый пример отрабатывает без проблем, второй же - нет. Не выдает ошибок, не пишет ничего в консоль - просто не открывается страница. Свою версию примера выложил сюда. С pyenv пробовал и на python 2.7, и на python 3.3 - результата нет. Бюсь головой об стол весь день.

Все, вопрос решен. Примеры на сайте дан для более старой версии motor, с версии 0.2 функция .to_list принимает 2 именованных аргумента, т.е. привести к такому виду

class MessagesHandler(tornado.web.RequestHandler):
    @tornado.web.asynchronous
    def get(self):
        """Display all messages"""
        self.write('<a href="/compose">Compose a message</a><br>')
        self.write('<ul>')
        ldb = self.settings['db']
        (ldb.messages.find()
        .sort([('_id', -1)])
        .to_list(callback=self._got_messages, length=10))

    def _got_messages(self, messages, error):
        if error:
            raise tornado.web.HTTPError(500, error)
        elif messages:
            self.write(messages_template.generate(messages=messages))
        self.finish()
P.S. иногда достаточно создать тему на лоре, как ответ находит тебя сам.

matroskin ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.