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

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

в сервисе?

28 ответов

117 просмотров

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

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, это огород накрученный вокр...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта