Динамическое обновление базы данных при помощи 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()