Хотел создать приложение для регистрации и авторизации пользователей, и поэтому решил добавить всплывающее окно когда данные при авторизации введены неверно, однако при тесте и намеренном вводе неверных данных не появляется всплывающее окно. Вообще не понимаю что делать. Подскажите как правильно сделать, чтобы без огромных правок если возможно.
import flet as ft
import sqlite3
def main(page: ft.Page):
page.title = 'messapp'
page.theme_mode = 'dark'
page.vertical_alignment = ft.MainAxisAlignment.CENTER
page.window.width = 350
page.window.height = 450
page.window.resizable = False
def register(e):
bd = sqlite3.connect('mess.u')
cur = bd.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
login TEXT,
pass TEXT
)""")
cur.execute(f"INSERT INTO users VALUES(NULL, '{us_log.value}', '{us_pass.value}')")
bd.commit()
bd.close()
us_log.value = ''
us_pass.value = ''
page.update()
def validate(e):
if all([us_log.value, us_pass.value]):
btn_reg.disabled = False
btn_auth.disabled = False
else:
btn_reg.disabled = True
btn_auth.disabled = True
page.update()
def auth_user(e):
bd = sqlite3.connect('mess.u')
cur = bd.cursor()
cur.execute(f"SELECT * FROM users WHERE login = '{us_log.value}' AND pass = '{us_pass.value}'")
if cur.fetchone() != None:
us_log.value = ''
us_pass.value = ''
page.update()
else:
page.snack_bar = ft.SnackBar(ft.Text('ERROR IN DATA'))
page.snack_bar.open = True
page.update
bd.commit()
bd.close()
us_log = ft.TextField(label='Login', width=200, on_change=validate)
us_pass = ft.TextField(label='Password', password=True, width = 200, on_change=validate)
btn_reg = ft.OutlinedButton('Add', width = 150, on_click=register, disabled=True)
btn_auth = ft.OutlinedButton('Authorize', width = 150, on_click=auth_user, disabled=True)
panel_register = ft.Row(
[
ft.Column(
[
ft.Text('Registration'),
us_log,
us_pass,
btn_reg
]
)
],
alignment=ft.MainAxisAlignment.CENTER
)
panel_auth = ft.Row(
[
ft.Column(
[
ft.Text('Authorization'),
us_log,
us_pass,
btn_auth
]
)
],
alignment=ft.MainAxisAlignment.CENTER
)
page.add(panel_auth)
ft.app(target = main)