169 похожих чатов

Как вы ипользуете сессию SQLAlchemy? Храните в kwargs или инициализируете непосредственно

в сервисе?

28 ответов

73 просмотра

Чуть подробнее про оба варианта, не совсем понятно

Valentin Marchuk- Автор вопроса
Tishka17
Чуть подробнее про оба варианта, не совсем понятно

Ну можно сделать так: await dp.start_polling(bot, session=async_alchemy_session) Или внутри метода сервиса инициализировать: def add_user(): async with AsyncSession(engine) as session: async with session.begin(): session.add_all(users) Если есть пример использования aiogram + sqlalchemy будет круто

Valentin Marchuk
Ну можно сделать так: await dp.start_polling(bot,...

а engine во втором случае ты как передаешь?

Valentin Marchuk- Автор вопроса
Tishka17
а engine во втором случае ты как передаешь?

я пока никак не передаю, думаю каким способом сделать интеграцию

Valentin Marchuk
Ну можно сделать так: await dp.start_polling(bot,...

а как ты собрался в первом случае для каждого конкурентного хэндлера иметь свою сессию?

Valentin Marchuk- Автор вопроса
Tishka17
а как планировал?

когда юзал aiohttp использовал первый способ, также думал и сейчас

Valentin Marchuk
когда юзал aiohttp использовал первый способ, такж...

хз что значит первый способ в случае aiohttp

Valentin Marchuk- Автор вопроса
Valentin Marchuk- Автор вопроса

Хорошо, значит второй способ или он тоже не верен?

Valentin Marchuk
Хорошо, значит второй способ или он тоже не верен?

1. Ну я бы взял sessionmaker, а не голый энджин. Так можно сразу настроить что-нибудь 2. Как ты собрался энджин прокидывать?

Valentin Marchuk- Автор вопроса
Tishka17
1. Ну я бы взял sessionmaker, а не голый энджин. Т...

Ну я думал как global переменную сделать в начале файла и все. Я первый раз юзаю алхимию, может можешь сказать как мне изначально все правильно делать?

Valentin Marchuk
Ну я думал как global переменную сделать в начале ...

Никогда не юзай глобальные переменные :)

Valentin Marchuk
Ну я думал как global переменную сделать в начале ...

Я бы как и обычно прокинул сессию из мидлвари

Valentin Marchuk- Автор вопроса
Tishka17
Никогда не юзай глобальные переменные :)

ну в типизированных языках есть конструктор и там можно Dependecy Injection реализовать, если знаешь что это, в питоне я хз как такое сделать, чтобы в одном месте инициализировать и передвать инстанс, где он юзается

Valentin Marchuk
ну в типизированных языках есть конструктор и там ...

Ты несёшь какую-то чушь. DI в питоне ровно такой же. И конструктор есть

Valentin Marchuk- Автор вопроса
Tishka17
Я бы как и обычно прокинул сессию из мидлвари

типа ты бы так сделал в мидлваре: data["sessionmaker"] = sessionmaker ?

Valentin Marchuk
типа ты бы так сделал в мидлваре: data["sessionma...

вообще я бы сделал data["session"] = self.sessiomaker()

Tishka17
хз что такое "типизированный язык"

А самое главное как строгость типов языка влияет на возможность реализовать DI ¯\_(ツ)_/¯

Valentin Marchuk- Автор вопроса
Tishka17
хз что такое "типизированный язык"

Ну смотри есть C# SomeClassConstructor(ISession session) { _session = session } Тут я в startup файле говорю что ISession - singleton и во все констркуторы пердается один инстанс на всем времени работы программы, как такое в питоне делать я пока не знаю

Valentin Marchuk
Ну смотри есть C# SomeClassConstructor(ISession s...

Каким образом в конструкторы передастся твой синглтон?

Valentin Marchuk- Автор вопроса
Tishka17
Каким образом в конструкторы передастся твой сингл...

это под капотом DI, там есть resolver, который перед тем как создать инстанс класса передает в конструктор объекты, которые инициализируются по особым правилам (Singleton, Transient, Scope)

Valentin Marchuk
это под капотом DI, там есть resolver, который пер...

это не под капотом DI, это огород накрученный вокруг DI. как же бесит эта подмена понятий

Valentin Marchuk- Автор вопроса
Tishka17
это не под капотом DI, это огород накрученный вокр...

хорошо, так как это объясняет мой вопрос?

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
Карта сайта