Комментарии 16
Как раз недавно сталкивался с ограничениями джанговского ORM, который нельзя нормально юзать в асинхронных функциях - приходится делать обёртки из sync_to_async. Тогда подумалось - есть же ведь асинхронные ORM, так может их попробовать юзать вместо джанговского? Интересно, какие будут подводные камни и сработает ли такое вообще.
Потому что основные концепции в django orm, например,тесамые__атрибуты__исвязи,
никак не завязаны на синхронный или асинхронный способ выполнения кода
И, как мы знаем, SQLAlchemy - это не асинхронный фреймворк, его асинхронный экстеншн очень и очень своеобразен
У меня сложилось ощущение, что FastAPI это новый мэйнстрим. Django уже походу умирает.
P.S. Я пока еще не успел поработать с FastAPI
А зачем тогда собственно Django?
В джанге много приятных мелочей, которые удобны и хорошо работают.
Хмык, а в следующем месяце, в декабре, официальная версия между прочим выходит с поддержкой асинхронной ORM. Django 4
Глянул только что релиз, не нашёл там ничего про асинхронную орм
Как минимум подключения к кешируемым NoSQL базам данным уже в следующем релизе, а вот ORM похоже позже ток будет, перенесли увы эти планы.
>>> Cache¶
The new async API for
django.core.cache.backends.base.BaseCache
begins the process of making cache backends async-compatible. The new async methods all havea
prefixed names, e.g.aadd()
,aget()
,aset()
,aget_or_set()
, oradelete_many()
.Going forward, the
a
prefix will be used for async variants of methods generally.
А откуда инфа про асинк ORM? Я не смог найти про это в release notes.
цитата со страницы про Async Support:
>>> We’re still working on async support for the ORM and other parts of Django. You can expect to see this in future releases. For now, you can use the sync_to_async()
adapter to interact with the sync parts of Django. There is also a whole range of async-native Python libraries that you can integrate with.
Похоже нам это примерно в 4.1+ ожидать ток
В release notes это сложно найти. Как я написал в начале статьи, об async orm даже речи не идёт, чтобы её делать. Вот это последние подвижки, которые были в этом направлении https://github.com/django/django/pull/14843. Что же касается этого проекта, то несомненно асинхронный джанго очень нужен тем, кто его уже использует, а для меня полезное упражнение и галочка в портфолио
Moscow Python уже обсудили ассинхронный Django.
Он не нужен.
FastAPI плюс орм не орм sql монга что хочешь (для монги вот сам велосипед попиливаю https://github.com/AntonOvsyannikov/pymotyc). Пора ветерану на заслуженную пенсию. С другой стороны в мире кровавого ентерпрайза (внезапно это не только ява) — Django стандарт де факто.
Асинхронному django быть. Эксклюзивно для Хабра