Подтвердить что ты не робот

Неблокирующий ORM для торнадо?

Есть ли асинхронный ORM Python, отличный от Twistar?

Я ищу легкий ORM для неблокирующего API, построенного на вершине торнадо. Конечно, я могу писать сырые SQL-запросы с помощью momoko, но я бы хотел работать с объектами.

4b9b3361

Ответ 1

Конечно, это так! Посмотрите peewee и peewee-async расширение. Отказ от ответственности: расширение только для PostgreSQL на данный момент, и я являюсь автором расширения:)

Это не специально для Tornado, но Tornado может работать в цикле событий asyncio.

Ответ 2

Нет. Единственный ORM, который может даже подумать о том, чтобы приблизиться к тому, чтобы быть легким, PeeWee, и это не async. ORM трудно писать и даже сложнее написать хорошо. Он должен иметь хороший, чистый API, раскрывать многие функции базовой БД и быть эффективным. Высокий порядок!

Существует не так много ORM для Python и даже меньше асинхронных. К сожалению.

Ответ 3

Если вы используете mongo, вы можете посмотреть Asyncmongo (не орм, но позволить вам получить доступ к вашим данным Async) https://github.com/bitly/asyncmongo

если это интересно, смотрите видео и слайды с этого веб-администратора: "Асинхронный MongoDB с Python и Tornado" http://www.10gen.com/presentations/webinar/Asynchronous-MongoDB-with-Python-and-Tornado

Ответ 4

Вы можете посмотреть Monguo, "полнофункциональный асинхронный ORM MongoDB с драйвером двигателя для приложений Tornado" как он описывает себя.

Ответ 5

Было 5 лет, и многое изменилось. Мы писали GINO как легкий ORM поверх asyncpg и ядро ​​SQLAlchemy. Это только для asyncio и PostgreSQL. GINO, поскольку "GINO - это не ORM", потому что он практически не использовал обычные шаблоны ORM, чтобы быть явным и простым.

Ответ 6

Возможно, вам захочется взглянуть на umysqldb (https://github.com/hongqn/umysqldb), совместимую с MySQLdb оболочку вокруг ultramysql. ultramysql совместим с gevent через патч обезьяны.