• Как получить textinput из другого screen в kivymd?

    Lord_of_Rings
    @Lord_of_Rings
    Python developer
    x = self.root.ids.manager.get_screen("Debit")
    Ответ написан
    1 комментарий
  • Как обновить весь столбец sqlite3 python?

    Каждый раз проходя по циклу for ваш запрос UPDATE my_table SET days = (?); обновляет ВСЕ значения столбца days на ?. И в последней итерации цикла for в весь столбец записывается 112. Чтобы это исправить нужно добавить в SQL запрос WHERE id = ?, чтобы изменение применялось только к определенному id. Для реализации этого нужно еще и получать это самое значение id.
    Итоговая функция days может выглядеть так:
    def days():
        sqlite_connection = sqlite3.connect('my_fin.db', detect_types=sqlite3.PARSE_DECLTYPES)
        cursor = sqlite_connection.cursor()
        sqlite_connection.row_factory = sqlite3.Row
        cursor.execute("SELECT id, date FROM my_table")
        q = cursor.fetchall()
        for qq in q:
            date_id = qq[0]
            qq=''.join(qq[1])
            dt1 = datetime.now()
            dt2 = datetime(year=int(qq[0:4]), month=int(qq[4:6]), day=int(qq[6:8]))
            dt3 = dt2 - dt1
            dt3 = int(dt3.days)
            print(dt3)
            ds = ('''UPDATE my_table SET days = (?) WHERE id = (?);''')
            cursor.execute(ds, (dt3, date_id))
            sqlite_connection.commit()
    Ответ написан
    Комментировать