Регистрация пользователей в Python: SQLite3 + Flat UI

Разработаем приложение для регистрации пользователей с использованием базы данных 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 для скрытия вводимых символов.

Тестирование

После запуска приложения можно протестировать регистрацию пользователей. Созданный файл базы данных будет содержать информацию о зарегистрированных пользователях. Авторизация пользователей будет рассмотрена позже.

Что будем искать? Например,программа