Создайте это приложение, чтобы узнать, как создать таблицу базы данных и заполнить ее данными.

Python имеет отличную поддержку баз данных, встроенную в его стандартную библиотеку, поэтому вы можете создавать базы данных и взаимодействовать с ними, не полагаясь на внешние платформы, такие как Django ORM.

SQLite легок и легко интегрируется с Python. Откройте для себя основные принципы программирования баз данных на Python с помощью простого приложения для регистрации пользователей.

Как создать базу данных на Python

Вы можете найти код, используемый для этого руководства, в этом Репозиторий GitHub

Чтобы создать базу данных на Python и взаимодействовать с ней, вам нужны две основные вещи: связь и курсор.

Соединение помогает вам подключиться к существующей базе данных или создать новую. Вот как создать соединение с базой данных в Python с помощью SQLite:

import sqlite3

# Connect to a (new) database
conn = sqlite3.connect('path/to/database.db')

# Close the connection
conn.close()

соединять() Метод принимает путь к существующей базе данных. Если по указанному пути нет базы данных, она будет создана. Вам следует закрыть соединение с базой данных, когда вы закончите взаимодействие с базой данных.

Курсор помогает вам взаимодействовать с подключенной базой данных. Вы будете использовать курсор для выполнения SQL-запросов в вашей программе Python. Вот как создать курсор:

cursor = conn.cursor()

# Close the cursor
cursor.close()

Вы можете создать курсор, вызвав курсор() метод для открытого объекта соединения.

Как выполнить транзакцию базы данных в Python

Используя курсор, вы можете запускать операторы SQL, запросы или сценарии для чтения или записи данных или изменения структуры базы данных.

Существует три основных метода, которые можно использовать для выполнения транзакции базы данных.

  1. Курсор.execute. Этот метод выполнит один оператор SQL. Вот как вы его используете:
    cursor.execute(
    CREATE TABLE IF NOT EXISTS users (
    name TEXT,
    age INTEGER
    )
    )
    Этот код вызывает выполнять метод для курсора, передав ему строку, содержащую оператор SQL.
  2. Курсор.executemany. Этот метод позволяет запускать один и тот же оператор SQL несколько раз, каждый раз с разными параметрами. Он принимает два аргумента: оператор SQL и итерируемый объект. Хорошее применение — вставка в базу данных сразу нескольких объектов:
    data = [
    ('Alice', 25),
    ('Bob', 30),
    ('Charlie', 22)
    ]

    cursor.executemany(INSERT INTO users (name, age) VALUES (?, ?), data)

    В приведенном выше коде используется казнить много метод для многократной вставки значений в базу данных.

    Обратите внимание ? заполнители в операторе SQL. Метод выполнения заменит их соответствующими значениями для каждого объекта.

  3. Курсор.executescript. Как следует из названия, этот метод выполнит за вас сценарий SQL. Вы можете написать свои операторы SQL в другом файле и запускать их с помощью выполнить скрипт метод:
    with open("path/to/script.sql") as file:
    sql_script = file.read()

    cursor.executescript(sql_script)

Как создать приложение регистрации с помощью Python и SQLite3

Логика приложения регистрации предполагает получение информации о пользователе с помощью Python и сохранение ее в базе данных. Эти шаги покажут вам, как создать простую систему регистрации с помощью Python и SQLite3.

Шаг 1. Подключитесь к существующей базе данных или создайте новую.

Начните с создания базы данных для вашего приложения или подключения к существующей:

import sqlite3

conn = sqlite3.connect('database.db')

cursor = conn.cursor()

# your app's code goes here

cursor.close()

conn.close()

Приведенный выше код создает объект подключения и курсор для взаимодействия с подключенной базой данных.

Шаг 2. Создайте таблицу для пользователей

Вам нужна таблица для хранения данных, которые пользователи предоставят при регистрации. Вот как создать его с помощью курсора:

cursor.execute(
CREATE TABLE IF NOT EXISTS users (
first_name TEXT,
last_name TEXT,
email TEXT UNIQUE,
password TEXT
)
)

conn.commit()

Этот код создаст таблицу с именем пользователи если его нет в вашей базе данных. Он создает четыре столбца в таблице для хранения информации о пользователе. Поле электронной почты уникально, чтобы пользователи не могли создавать несколько учетных записей с одним и тем же адресом электронной почты.

Звонок в конн.коммит важно зафиксировать запрос в базе данных. Без него никаких изменений в базе данных не будет.

Если вы используете метод выполнения сценария, вы можете добавить ключевое слово COMMIT в конец файла SQL, чтобы вам не приходилось вызывать conn.commit.

Шаг 3. Сбор пользовательских данных

Функции Python упрощают повторное использование кода., поэтому хорошей идеей будет создать функцию для управления функцией регистрации. Эта функция собирает имя, фамилию, адрес электронной почты и пароль пользователя.

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
email = input("Enter your email: ")
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

Шаг 4. Проверьте правильность пароля

Измените регистр_пользователь функция, гарантирующая, что пользователь вводит один и тот же пароль дважды. Если они этого не сделают, вам следует предложить им повторно ввести пароль. Вы можете добиться этого с помощью такого цикла:

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
email = input("Enter your email: ")

whileTrue:
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

# Check password correctness
if password1 == password2:
print("You have successfully registered!")
break
else:
print("Your passwords must match")

Благодаря этому изменению пользователь не сможет зарегистрироваться, если его пароли не совпадут.

Шаг 5. Проверьте уникальность электронной почты

Инструкция SQL, создающая таблицу пользователей, определяет поле электронной почты как уникальное. Это означает, что база данных вернет ошибку, если пользователь зарегистрируется с уже существующим адресом электронной почты. Чтобы действовать правильно, нужно обработать исключение Python:

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")

whileTrue:
email = input("Enter your email: ")
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

# Check password correctness
if password1 == password2:
try:
print("You have successfully created an account.")
break
except sqlite3.IntegrityError:
print("Error: This email is already registered.")
else:
print("Your passwords must match.")

Этот код использует блок try-кроме для обработки ошибок, возникающих из-за дубликатов электронных писем. Если база данных выдает ошибку IntegrityError, цикл while продолжится, предлагая пользователю ввести другой адрес электронной почты.

Для этого примера приложения можно с уверенностью предположить, что ошибка IntegrityError возникнет только в результате дублирования адреса электронной почты. В реальном приложении вы, вероятно, будете использовать более продвинутую обработку ошибок для решения других проблем, которые могут возникнуть.

Шаг 6. Вставьте данные пользователя в базу данных

Теперь, когда вы собрали и проверили данные пользователя, пришло время добавить их в базу данных. Вы можете использовать SQL-запрос сделать это. Измените блок try-кроме следующим образом:

try:
cursor.execute(
INSERT INTO users (first_name, last_name, email, password)
VALUES (?,?,?, ?)
, (first_name, last_name, email, password2))

conn.commit()
print("You have successfully created an account.")
break
except sqlite3.IntegrityError:
print("Error: This email is already registered.")

В модифицированном блоке try-кроме курсор выполняет операцию вставки SQL. Наконец, конн.коммит метод фиксирует операцию SQL в базе данных.

Если вы выполнили все шаги, описанные выше, у вас должно быть приложение, которое регистрирует пользователей и сохраняет их в базе данных. Вы можете использовать такое приложение, как Браузер БД для SQLite чтобы просмотреть содержимое вашей базы данных:

Использование баз данных вместо типов коллекций

Для простых баз данных вам может оказаться проще создать собственный код. Однако по мере роста вашего приложения и усложнения базы данных рассмотрите возможность использования такого инструмента, как Django ORM, чтобы упростить задачу.

Чтобы продолжить практиковать навыки работы с базами данных низкого уровня, попробуйте внедрить систему входа в систему в дополнение к программе регистрации.