Разработаем приложение для регистрации пользователей с использованием базы данных SQLite3 и библиотеки Flat. SQLite3 обеспечивает встроенную базу данных, упрощая разработку и позволяя легко перейти на другие СУБД (например, MySQL или PostgreSQL).
Структура приложения
Приложению необходим базовый каркас. Используем библиотеку Flat для интерфейса. Настроим окно размером 350×400 пикселей, запретив изменение размера (resizable=False). Создадим переменные для виджетов:
- User_Login: поле ввода логина (ширина 200 пикселей).
- User_Pass: поле ввода пароля (ширина 200 пикселей).
- Button_Rec: кнопка «Добавить» (ширина 200 пикселей, изначально неактивна).
Функциональность
Создадим функции:
- register(): функция регистрации пользователя.
- validate(): функция проверки заполнения полей логина и пароля. Активирует кнопку «Добавить», если поля заполнены.
validate() использует if all([User_Login.value, User_Pass.value]): для проверки. При заполнении обоих полей, свойство disabled кнопки Button_Rec устанавливается в False. В противном случае кнопка остается неактивной. Для автоматического вызова validate() при изменении данных в полях ввода, добавим обработчик события onchange к каждому полю, вызывая validate() и обновляя интерфейс с помощью page.update().
Размещение элементов
Размещение элементов на экране осуществляется с помощью page.add(Row(…)). Для вертикального размещения используем Column внутри Row. Горизонтальное центрирование обеспечивается Row.align="MainAxisAlignment.center".
Подключение и использование SQLite3
Подключаем библиотеку SQLite3. Создаем файл базы данных (itproger.db). SQLite не требует специфического расширения файла. Создаем курсор:
conn = sqlite3.connect('itproger.db')
cursor = conn.cursor()
Создаем таблицу users с полями id (целое число, первичный ключ), login (текст) и password (текст):
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
login TEXT,
password TEXT
)
''')
Добавляем пользователя с помощью INSERT INTO:
cursor.execute("INSERT INTO users (id, login, password) VALUES (NULL, ?, ?)", (User_Login.value, User_Pass.value))
После добавления пользователя очищаем поля ввода и обновляем интерфейс. Для поля пароля устанавливаем password=True для скрытия вводимых символов.
Тестирование
После запуска приложения можно протестировать регистрацию пользователей. Созданный файл базы данных будет содержать информацию о зарегистрированных пользователях. Авторизация пользователей будет рассмотрена позже.