2012-05-28 4 views
23

Есть ли асинхронный ORM Python, отличный от Twistar?Неблокирующий ORM для торнадо?

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

+1

Посмотрите на этот ответ http://stackoverflow.com/a/10216120/1321404 –

+0

SQLAlchemy + gevent является излишним. Момоко я уже использую. И ища решения между этими двумя. –

+0

не то, что я знаю, но я на самом деле подумываю о написании недавно. возможно, поверх redis, хотя и не поверх любого SQL :) –

ответ

2

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

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

+2

[peewee-async] (https://github.com/05bit/peewee-async) - это оболочка для peewee ORM для асинхронного интерфейса, только что упомянутая [выше] (http://stackoverflow.com/a/26663553/ 326406). – rudyryk

+0

Удивительный! Замечательно, чтобы один наконец пришел :) –

1

При использовании Монго вы можете посмотреть в Asyncmongo (не ОРМ, но давайте вы получаете доступ к данным асинхронной) https://github.com/bitly/asyncmongo

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

+1

Извините, но вопрос об ORM. Я знаю, что мы можем получить доступ к хранилищам sql и nosql асинхронным способом. –

1

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

14

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

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

+1

Спасибо, посмотрим, когда получится шанс! =) –

0

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

1

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

+0

GINO начал 1 месяц назад. Я пойду за тобой. Если вы сохраните темп - в следующем году мы увидим хорошее решение для игры с торнадо. –