Есть ли асинхронный ORM Python, отличный от Twistar?
Я ищу легкий ORM для неблокирующего API, построенного на вершине торнадо. Конечно, я могу писать сырые SQL-запросы с помощью momoko, но я бы хотел работать с объектами.
Есть ли асинхронный ORM Python, отличный от Twistar?
Я ищу легкий ORM для неблокирующего API, построенного на вершине торнадо. Конечно, я могу писать сырые SQL-запросы с помощью momoko, но я бы хотел работать с объектами.
Конечно, это так! Посмотрите peewee и peewee-async расширение. Отказ от ответственности: расширение только для PostgreSQL на данный момент, и я являюсь автором расширения:)
Это не специально для Tornado, но Tornado может работать в цикле событий asyncio.
Нет. Единственный ORM, который может даже подумать о том, чтобы приблизиться к тому, чтобы быть легким, PeeWee, и это не async. ORM трудно писать и даже сложнее написать хорошо. Он должен иметь хороший, чистый API, раскрывать многие функции базовой БД и быть эффективным. Высокий порядок!
Существует не так много ORM для Python и даже меньше асинхронных. К сожалению.
Если вы используете mongo, вы можете посмотреть Asyncmongo (не орм, но позволить вам получить доступ к вашим данным Async) https://github.com/bitly/asyncmongo
если это интересно, смотрите видео и слайды с этого веб-администратора: "Асинхронный MongoDB с Python и Tornado" http://www.10gen.com/presentations/webinar/Asynchronous-MongoDB-with-Python-and-Tornado
Вы можете посмотреть Monguo, "полнофункциональный асинхронный ORM MongoDB с драйвером двигателя для приложений Tornado" как он описывает себя.
Было 5 лет, и многое изменилось. Мы писали GINO как легкий ORM поверх asyncpg и ядро SQLAlchemy. Это только для asyncio и PostgreSQL. GINO, поскольку "GINO - это не ORM", потому что он практически не использовал обычные шаблоны ORM, чтобы быть явным и простым.
Возможно, вам захочется взглянуть на umysqldb (https://github.com/hongqn/umysqldb), совместимую с MySQLdb оболочку вокруг ultramysql. ultramysql совместим с gevent через патч обезьяны.