в функцию?
def update_worker(id: int, full_name: str, phone: str, city: str, birthday: date, category: str):
pass
Не, нужно, чтобы пользователь какие то задал, какие то нет
А как это связано со списком всех аргументов?
при **kwargs использование аргументов не так понятно, какие можно передавать, это только в доку писать
Но при этом гора библиотек продолжают пихать это говно
Так а зачем тебе этот список аргументов...?
SQL UPDATE правильный построить потом. Чтобы 100500 условий не делать и пользователя не заставлять передавать все параметры
Твои сообщения звучат как "хочу к машине крылья приделать, как это можно сделать? мне просто хочется чтобы сидения кожаные были"
Ручками словарь сделай
У тебя все аргументы обязательные, не понимаю что ты собрался проверять
ну, это в примере. Забыл дописать, чтобы они не обязательные были. Сейчас пример напишу, что имею ввиду
С этого стоило начать
locals() в самом начале функции можешь заюзать
работает. Спасибо)
Не отличается
что? тебе говорят не используй locals возьми твоё sql и все аргументы диктом, да, напиши ручками и передай вместе куда ты там передаешь, коннекшену? оно умеет подставлять
kwargs хуже, чем словарь в данном случае?
Так вон же они, перечисли
да емаё покажи код полностью куда ты там sql передаёшь
def __execute(self, sql: str, params: Optional[tuple] = None) -> int: with self.__connect() as connection: with connection.cursor() as cursor: cursor.execute(sql, params) connection.commit() return cursor.lastrowid
выкинуть, потому что это 1. бессмысленно 2. делает коммит не в том слое абстракции (то есть не в нужны момент фаткически) 3. не умеет кучу вещей типа returning 4. сложный код
Я это из доки взял к библиотеке https://pymysql.readthedocs.io/en/latest/user/examples.html
нет, там просто пример выполнения запроса, а у тебя - какой-то типа универсальный метод
а как правильно тогда?
делать конкретные понятные методы работы с БД, которые можно комбинирировать в транзакции. И убрать всю магию https://t.me/advice17/16
посмотрю. Спасибо
Обсуждают сегодня