Презентация "Работа с базами данных во фреймворке Flask"

  • pptx
  • 15.06.2025
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Тема 14_лекция.pptx

Преподаватель:
Фартышев Дмитрий Александрович

Лекция.
Работа с базами данных в Flask.

SQLite

SQLite - это компактная и легкая встраиваемая база данных, которая позволяет хранить и управлять данными прямо внутри вашего приложения. Её простота в использовании и широкая поддержка делают её прекрасным выбором для различных проектов, включая веб-приложения, мобильные приложения и многое другое.

SQLite

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

Поддержка всех основных операций SQL, таких как SELECT, INSERT, UPDATE и DELETE, а также транзакций и подготовленных запросов.

Поддержка большинства типов данных, включая целые числа, числа с плавающей точкой, строки, даты и времена, NULL и BLOB (binary large objects).

Преимущества использования SQLite

Простота: SQLite не требует отдельного сервера или настройки. Она работает как часть вашего приложения.
Надежность: Транзакции и ACID-свойства обеспечивают надежность и целостность данных.
Кроссплатформенность: SQLite поддерживается на множестве платформ, включая Windows, macOS и Linux.
Эффективность: Использует минимальные ресурсы системы, что делает её хорошим выбором для мобильных устройств.

Установка SQLite

Чтобы начать работу с SQLite в Python, нам потребуется библиотека sqlite3. Эта библиотека входит в стандартную библиотеку Python (начиная с версии 2.5), поэтому нам не нужно устанавливать её отдельно. Мы можем начать использовать sqlite3 сразу после установки Python.

Создание новой базы данных

import sqlite3

# Создаем подключение к базе данных (файл my_database.db будет создан)
connection = sqlite3.connect('my_database.db')

connection.close()

Инструмент для работы с SQLite

Для удобной работы с базой данных SQLite, вы можете использовать инструменты, такие как DB Browser for SQLite (или SQLite Studio). Это графический интерфейс, позволяющий просматривать, редактировать и управлять данными в базе SQLite.
DB Browser for SQLite можно скачать с официального сайта: sqlitebrowser.org.

Создание таблиц

import sqlite3

# Устанавливаем соединение с базой данных
connection = sqlite3.connect('my_database.db')
cursor = connection.cursor()

# Создаем таблицу Users
cursor.execute('''
CREATE TABLE IF NOT EXISTS Users (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL,
email TEXT NOT NULL,
age INTEGER
)
''')

# Сохраняем изменения и закрываем соединение
connection.commit()
connection.close()

Вставка, обновление и удаление данных

Использование оператора INSERT для добавления данных
cursor.execute('INSERT INTO Users (username, email, age) VALUES (?, ?, ?)', ('newuser', 'newuser@example.com', 28))

Обновление записей с использованием UPDATE
# Обновляем возраст пользователя "newuser"
cursor.execute('UPDATE Users SET age = ? WHERE username = ?', (29, 'newuser'))

Удаление данных с помощью оператора DELETE
# Удаляем пользователя "newuser"
cursor.execute('DELETE FROM Users WHERE username = ?', ('newuser',))

Использование SQL-запросов для извлечения данных из таблиц

# Выбираем всех пользователей
cursor.execute('SELECT * FROM Users')

Примеры операторов SELECT, FROM, WHERE

# Выбираем имена и возраст пользователей старше 25 лет
cursor.execute('SELECT username, age FROM Users WHERE age > ?', (25))

Примеры операторов GROUP BY и HAVING
Оператор GROUP BY используется для группировки данных по определенным столбцам. Оператор HAVING применяется к агрегатным функциям, чтобы фильтровать результаты групп.
cursor.execute('SELECT age, AVG(age) FROM Users GROUP BY age')
cursor.execute('SELECT age, AVG(age) FROM Users GROUP BY age HAVING AVG(age) > ?', (30,))

Использование агрегатных функций: COUNT, SUM, AVG, MIN, MAX

COUNT - подсчет количества записей
Функция COUNT используется для подсчета количества записей в столбце или таблице.
cursor.execute('SELECT COUNT(*) FROM Users')

SUM - суммирование числовых значений
Функция SUM вычисляет сумму числовых значений в столбце.

cursor.execute('SELECT SUM(age) FROM Users')

AVG - вычисление среднего значения
cursor.execute('SELECT AVG(age) FROM Users')

MIN - нахождение минимального значения
cursor.execute('SELECT MIN(age) FROM Users')

MAX - нахождение максимального значения
cursor.execute('SELECT MAX(age) FROM Users')

Использование методов fetchone(), fetchmany() и fetchall() для получения данных

# Выбираем первого пользователя
cursor.execute('SELECT * FROM Users')
first_user = cursor.fetchone()
print(first_user)

# Выбираем первых 5 пользователей
cursor.execute('SELECT * FROM Users')
first_five_users = cursor.fetchmany(5)
print(first_five_users)

# Выбираем всех пользователей
cursor.execute('SELECT * FROM Users')
all_users = cursor.fetchall()
print(all_users)

Обработка NULL-значений

import sqlite3

# Устанавливаем соединение с базой данных
connection = sqlite3.connect('my_database.db')
cursor = connection.cursor()

# Выбираем пользователей с неизвестным возрастом
cursor.execute('SELECT * FROM Users WHERE age IS NULL')
unknown_age_users = cursor.fetchall()

# Выводим результаты
for user in unknown_age_users:
print(user)

# Закрываем соединение
connection.close()

NULL - это специальное значение, обозначающее отсутствие данных. При обработке NULL-значений, вы можете использовать операторы IS NULL и IS NOT NULL. Например, давайте выберем пользователей с неизвестным возрастом:

Как связать SQLite и Flask

from flask import Flask, render_template, request
import sqlite3

app = Flask(__name__)

………

@app.route('/participants')
def participants():
connect = sqlite3.connect('database.db')
cursor = connect.cursor()

…….