Динамическое обновление базы данных при помощи pyodbc и flet

нужна помощь. Пишу приложение на flet с базами данных используя pyodbc и возникла такая проблема. После ввода данных и их добавление в бд они отображаются только после перезапуска приложения. Хотелось что бы обновление базы происходило сразу. Код добавления:

def registre(e):
    try:
        randomId = rand.randint(1000000, 9999999)
        cursor.execute(
            "INSERT INTO applicant_informations(ID, Lastname, Name, Age, Gmail, Education) VALUES (?,?,?,?,?,?)", f'{randomId}', f'{last_name.value}', f'{name.value}', f'{age_text.value}', f'{gmail.value}', f'{education.value}')
        registreSnakeBar.open = True
        db_test_conected.commit()
        row.clear()
        load_BD()
        page.update()
    except:
        registreSnakeBarError.open = True

Код для отображения базы данных в приложении:

def load_BD():
    # Цикл просмотра бд
    for users in row:
        DB_icons.rows.append(ft.DataRow(cells=[
            ft.DataCell(ft.Text(users[0])),
            ft.DataCell(ft.Text(users[1])),
            ft.DataCell(ft.Text(users[2])),
            ft.DataCell(ft.Text(users[3])),
            ft.DataCell(ft.Text(users[4])),
            ft.DataCell(ft.Text(users[5])),
            ft.DataCell(ft.Row([
                ft.IconButton(icon=ft.icons.EDIT,
                              icon_color='blue', tooltip='Редактировать'),
                ft.IconButton(icon=ft.icons.DELETE,
                              icon_color='red', tooltip='Удалить')
            ]))
        ]))
    page.update()

Заранее спасибо за помощь


Ответы (1 шт):

Автор решения: Cheese-Pelikan

Сам нашёл решение, оно выглядит так:

def load_BD():
    cursor.execute('SELECT * FROM applicant_informations')
    row = cursor.fetchall()
    # Цикл просмотра бд
    for users in row:
        DB_icons.rows.append(ft.DataRow(cells=[
            ft.DataCell(ft.Text(users[0])),
            ft.DataCell(ft.Text(users[1])),
            ft.DataCell(ft.Text(users[2])),
            ft.DataCell(ft.Text(users[3])),
            ft.DataCell(ft.Text(users[4])),
            ft.DataCell(ft.Text(users[5])),
            ft.DataCell(ft.Row([
                ft.IconButton(icon=ft.icons.EDIT,
                              icon_color='blue', tooltip='Редактировать'),
                ft.IconButton(icon=ft.icons.DELETE,
                              icon_color='red', tooltip='Удалить')
            ]))
        ]))
    db_test_conected.commit()
page.update()

def registre(e):
    try:
        randomId = rand.randint(1000000, 9999999)
        cursor.execute(
            "INSERT INTO applicant_informations VALUES (?,?,?,?,?,?)",
            f'{randomId}', f'{last_name.value}', f'{name.value}',
            f'{age_text.value}', f'{gmail.value}', f'{education.value}')
        registreSnakeBar.open = True
        db_test_conected.commit()
        DB_icons.rows.clear()
        load_BD()
    except:
        registreSnakeBarError.open = True
    page.update()
→ Ссылка