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

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

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

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

30 ответов

21 просмотр

Не используй 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ᵣₐᵢᴺ
Ну я понял, но меня смутило то, что ты сказал, что...

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

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
9
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Карта сайта