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

У меня такая проблема. Есть подключение к базе данных MySQL,

в исполняемом файле. То есть, создаётся объект и курсор pymysql, конструируют свои объекты, всё отлично работает. Но дело в том, что я хочу использовать эти уже сконструированные из исполняемого файла объекты в других файлах и проблема заключается в том, что когда я импортирую из исходного файла этот объект курсора, import исполняет файл. Другими словами у меня происходит флуд в базу данных, когда я делаю импорт файла, где происходит подключение. Подскажите, как сделать получение текущих, уже сконструированных объектов в другом файле, для их использования?

Я начал читать про импорты, но пока что не понимаю. Совсем не опытен в Python.

30 ответов

39 просмотров

Не используй pymysql там нету асинхронности. Надо асинхронный клиент найти, или вообще ОРМ типо sqlalchemy использовать!

clicore-Bᵣₐᵢᴺ Автор вопроса
Marat Mkhitaryan
Не используй pymysql там нету асинхронности. Надо ...

А при чём тут асинхронность и зачем она мне в решении моей ошибки понадобится?

clicore Bᵣₐᵢᴺ
А при чём тут асинхронность и зачем она мне в реше...

при том что aiogram асинхронный а ты пытаешься прицепить синхронный коннектор к нему

импорт исполняет файл, все верно

clicore-Bᵣₐᵢᴺ Автор вопроса

я посоветую забыть про глобальные переменные

заверни в функцию подключение к БД, и вызывай только в if name == "main":

clicore-Bᵣₐᵢᴺ Автор вопроса
Marat Mkhitaryan
Не используй pymysql там нету асинхронности. Надо ...

сорьки, у меня мозги уже кипят, вылетело из головы, что ты мне написал что можно использовать

clicore Bᵣₐᵢᴺ
сорьки, у меня мозги уже кипят, вылетело из головы...

да, используй асинхронную ОРМ и не импортируй из скрипта бота ничего

clicore-Bᵣₐᵢᴺ Автор вопроса
Marat Mkhitaryan
да, используй асинхронную ОРМ и не импортируй из с...

ебать я довн, теперь я понял тебя, спасибо ещё раз)

clicore-Bᵣₐᵢᴺ Автор вопроса
Marat Mkhitaryan
https://t.me/ru_python/1478106 в функцию оберни

Да я понял понял, но теперь мне захотелось юзать aiomysql почему то

clicore-Bᵣₐᵢᴺ Автор вопроса
Michael S2pac
Ты ещё пилишь интернет магазин?)

Да, а у тебя хорошая память)

Marat Mkhitaryan
почему?

1. руками лезешь в луп 2. внутри if name main больше одной строки 3. глобальные переменные 4. хардкод адреса БД 5. тортойз

Tishka17
1. руками лезешь в луп 2. внутри if name main боль...

Ну, второе это не критично, особенно в период разработки. А что данные надо скрывать в переменных окружениях - бесспорно

clicore-Bᵣₐᵢᴺ Автор вопроса
Tishka17
меня больше первое напрягает.

Окей, а как норм тогда будет?

Viktor
почему тортойз - ужас? )

Потому что стандартом дефакто является алхимия

Tishka17
я же кинул свой шаблон

А ну ка, я хочу глянуть

Viktor
почему тортойз - ужас? )

потому что какая-то непопулярная орм, сделанная с огласдкой на худшие практики джанги

Michael S2pac
А ну ка, я хочу глянуть

https://github.com/Tishka17/tgbot_template

clicore-Bᵣₐᵢᴺ Автор вопроса
Tishka17
я же кинул свой шаблон

Ну я понял, но меня смутило то, что ты сказал, что в if name main больше одной строки. А почему не стоит там юзать более одной строки?

clicore Bᵣₐᵢᴺ
Ну я понял, но меня смутило то, что ты сказал, что...

потому что в глобальном пространстве не должно быть бизнес логики. Только декларация констант/классов/функций.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта