асинхронность переписал и у меня замедлилось всё
переписывал синхронный код библиотеки python-binance
но я тестировал только на одном пользователе, а если будет пользователей 20, то какой код может показать себя лучше?
Важно понимать что в коде
Математические операции(*/), вызов асинхронных функций из библиотеки python-binance, операции с БД sqlite3 И много if/else
Может
И ещё ответ на дополнение пожалуйста
Хз где тут асинк
правильно написанный асинхронный код
my async code, который работает медленнее чем my sync code
в асинхронном контексте всё равно используешь requests?
что за файл sql?
Там операции с базой данных sqlite3 insert(), select и т.п.
ну покажи его
Там говнокод, но не откажусь от критики одна из функций: def select_3(name_base: str, where_id: str, eq_id: str, where_id_2: str, eq_id_2: str, where_id_3: str, eq_id_3: str): conn = sqlite3.connect(f"{name_db}.db", check_same_thread=False) cursor = conn.cursor() sql = f"SELECT * FROM {name_base}" \ f" WHERE {where_id} = '{eq_id}'" \ f" and {where_id_2} = '{eq_id_2}'" \ f" and {where_id_3} = '{eq_id_3}'" cursor.execute(sql) return cursor.fetchone()
ну так он синхронный.....
Зачем f-строку используешь?
https://t.me/advice17/10
это я знаю, почти все запросы делаются самим ботом я вроде бы всё верно указываю)
это влияет на скорость работы бота?
не может, а асинхронный код всегда как правило медленней синхронного
cursor.execute("SELECT * FROM ? ? = ? and ? = ? and ? = ? and ? = ?", (name_base, where_id, eq_id, where_id_2, eq_id_2,where_id_3, eq_id_3,where_id_4, eq_id_4,)) не работает cursor.execute(f"SELECT * FROM {name_base} {where_id} = ? and {where_id_2} = ? and" f" {where_id_3} = ? and {where_id_4} = ?", (eq_id, eq_id_2, eq_id_3, eq_id_4,)) не работает
Конечно не работает. Ты каким-то хуем таблицу подставляешь, хотя разные таблицы в разных случаях используются. Плейсхолдер для подстановки данных нужен, а запрос должен писаться осмыслено
Что это за ужас? Не проще тогда уж не параметры подставлять, а сразу запрос фигачить руками?
Я уже решил, спасибо за ответ
Не надо свои сообщения удалять
зачем удалил?
Не актуально
И что?
Ты не актуален
Хорошо, в следующий раз так не буду
Так не первый же раз
Разве? Может ты меня с кем-то путаешь
Пчел, вот представь, что в интернете все будут удалять свои вопросы и ответы на них после их решения? Это делается для того, чтобы потом другие люди могли найти твой вопрос и посмотреть на него ответ
Может, но вроде было дело
Я уже понял что удалять не нужно, там WHERE пропущен был)
как жаль, что никто чужие вопросы не смотрит…
Я читал, но имя базы и элемент по которому ищу не может быть "?"
Приходится использовать f для того, чтобы вставлять имя таблицы и элемент по которому ищу
Не нужно вставлять имя таблицы
Не представляю ситуации когда в зависимости от каких-то динамических условий надо искать или пользователя или товар. При том, что у них ещё и состав колонок разный и не получится в одном месте юзать
Мне нужно Я хочу чтобы я использовал select('users','user_id','11111'), а не писал каждый раз "SELECT * FROM users ..." Легче один раз переписать функцию, чем сто раз все "SELECT * FROM"
возьми орм может быть
не надо изобретать орм, возьми готовый
Честно говоря не знаю что это и с чем это едят , но поищу в интернете
ой, привет доставка уже работает?
жсоны прекратили доставку в рф в связи с текущими событиями
Ты забыл перечислить например состав колонок которые хочешь получить
Может тебе просто взять sqlalchemy?
Как ты будешь делать джойны, лимиты? Сложные where? Агрегации?
Используй готовые кверибилдеры
В чем проблема сделать под каждую таблицу по одной функции с правильным селектом?
не пизди пожалуйста. ты захаживал в чат SQLAlchemy задолго до сегодняшнего дня.
внатуре не пизди
Если я где-то ошибусь или мне захочется использовать что-то другое нужно будет переписывать все
Проблема этого селекта в том, что он возвращает хз что. Ты всегда должен явным образом указывать список запрашиваемых колонок
https://t.me/ru_python_beginners/1922316
Именно, если ты ошибаешься в своем универсальном селекте, тебе придется переписывать вообще всё, чтобы обработать эту ситуацию. А если ошибёшься в одной функции, надо будет исправить только её
ух... похоже у нас тут два чувака с одинаковыми никами сидят по разным чатам.
При этом оба чате аиограма есть
я б забанил одного
Это никнейм актера из фильма)
Хорошо, я тебя понял Следующий раз или алхимию выберу или буду делать так ,как у нормальных программистов )
бляяя разбань меня там, я случайно нажал ,,Я животное,,
Обсуждают сегодня