Найти тему
Programmer | Python

SQLite в Python первые шаги. Функция для регистрации пользователей. Часть 1

Оглавление

Импорт библиотеки, создание базы данных и объекта cursor

SQLite — это часть стандартного пакета Python 3, поэтому ничего дополнительно устанавливать не придется.

Импортируем библиотеку sqlite3. Прописываем первой строчкой кода:

import sqlite3

Библиотека импортирована, далее создаём базу данных. База данных создаётся в формате .db так и назовём нашу переменную и используем объект connect(), назовём нашу базу данных server.db:

db = sqlite3.connect('server.db')

Следующей строкой создаём переменную sql к созданной переменной db присваиваем объект cursor (cursor - нужен для работы с базой данных):

sql = db.cursor()

Создаём первую таблицу

Начинаем работать с cursor'ом, а точнее с переменной которой присвоен данный объект - sql:

sql.execute("CREATE TABLE IF NOT EXISTS users ("
"id INT NOT NULL PRIMARY KEY,"
"login TEXT,"
"password TEXT,"
"
points BIGINT)")

Функция execute отвечает за SQL-запрос. CREATE TABLE - создать таблицу. IF NOT EXISTS - если такой таблицы не существует (поможет избежать ошибки при повторном создании таблицы с таким же названием). users - название таблицы.

Создаём столбцы, id - название столбца, INT - целочисленное значение, NOT NULL - не может равняться нулю (не может быть пустым), PRIMARY KEY - первичный ключ.

  • NULL — значение NULL
  • INTEGER — целое число
  • BIGINT — целое число, но с большим диапазоном
  • REAL — число с плавающей точкой
  • TEXT — текст
  • BLOB — бинарное представление крупных объектов, хранящееся в точности с тем, как его ввели

После каждого действия связанного с изменением таблицы, необходимо сохранить её:

db.commit()

Итог должен быть таким
Итог должен быть таким

Добавление данных в созданную таблицу командой INSERT INTO

INSERT INTO - используется для вставки новых строк в таблицу. Существует два способа использования инструкций.

  1. Способ первый

Первый способ он менее гибкий, если у вас 4 столбца, обязательно к заполнению всех 4х столбцов:

sql.execute("INSERT INTO users VALUES (1, 'Login', 'Password', 10)")

Сохраняем изменения:

db.commit()

Для предотвращения SQL-инъекции используем следующий код. Создаём список из нескольких данных:

info_users = [(2, 'Ivan', 'Ivanov', 10), (3, 'Sergey', 'Sergy', 10), (4, 'Andrey', '1234', 10)]

Добавляем этот список в таблицу и сохраняем её:

sql.executemany("INSERT INTO users VALUES (?, ?, ?, ?)", info_users)
db.commit()

2. Способ второй

Второй способ уже более гибкий и тут вступает в ход Python.

Будем записывать все столбцы по порядку. Т. к. первый столбец id у нас с значением PRIMARY KEY, он будет заполняться автоматический, к каждой новой записи прибавляя номер. Заполним второй столбец, для начала создадим переменную user_login куда будем записывать введённый нами логин:

user_login = input('Введите логин: ')

Запишем введенный нами логин в таблицу и сохраним её:

sql.execute(f"INSERT INTO users (login) VALUES ('{user_login}')")
db.commit()

Итог должен быть таким
Итог должен быть таким

Запустите код, введите логин и посмотрите, что получилось.

-3

В следующей части мы научимся выводить таблицу и делать проверку введён ли такой логин или нет.

-4