sessionmaker под одну и ту же БД, если они будут использоваться в разных скриптах? Это ничего не ломает ведь?
Да, всё нормально
Да но зачем? Просто engine тебе дает connection from con. pool
второе предложение не понял совсем, можешь чуть подробнее? вообще я с примера груши брал, + в интернете такое же видел
Конструктор create_engine() просто дает (если они есть connection pool in DB, если их нет тогда con создаеться и сохраняеться в pool). Ну и еще просто использует выбранный тобой диалект, и адаптер (драйвер) для соединения с БД. Тоисть проще использовать один engine к одной BD.
Ну просто дело в том, что я не могу никак импортировать из одного скрипта в другой engine, т.к. в первом скрипте он создается локально один раз. Если делать глобалом, то это во-первых плохо, а во-вторых ведет к circular import
Страно, ты написал. Но проще просто в нонфиге создать engines, котрые те надо, и потом для engine написать функ, get_session и в endpoint (view) нею пользоваться.
Ну и закрыть само собою
вопрос совсем не в этом был, а в мини-скриптах для дева\чего-то если я конечно правильно понял
типа того, первый скрипт — это телеграм бот, а второй — скрипт-воркер для очереди-планировщика. В первом скрипте импортируется queue из второго и используется в коде бота чтобы планировать задачи, а скрипт воркера как бы особняком, хотя и использует адаптер бд из кода бота.
ну лучше в каждом иметь свой конечно, да если файлы запуска разные
Ну у тебя в есть настройки твоего проекта, пусть будет settings.py. там ты создаёшь engine(). Чтобы получить сессию ты можешь просто прописать Session(bind=engine). Но лудше єту логику вынести в функцию, котрая будет создавать session и ее возращать: def get_session(engine=setting.engine): Return Session(bind=engine)
И использовать эту функцию чтобы получать сисию в ендпоинте
окей, попробую потом, пока так буду делать
ендпоинт в данном случае это что?
нет-нет-нет... так не надо делать...
Просто сделай функцию для создания енджинов и session_maker принимающую настройки
Ендпоинт часто называется просто конечное место куда приходит реквест. Если это fast api to функция с декоратором @app.<HTTP METHOD (like GET, POST...)> В джанго это вьюхи.
я на самом деле так и делаю, просто не упоминал. Кстати это в итоге напоминает DI, или мне кажется
Обсуждают сегодня