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

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

Содержимое разработки

Лекция. Работа с базами данных в Flask. Преподаватель: Фартышев Дмитрий Александрович

Лекция.

Работа с базами данных в Flask.

Преподаватель:

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

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

SQLite

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

SQLite Высокая скорость работы, так как база данных хранится в одном файле и не требует сетевого взаимодействия или использования процессов-серверов. Поддержка всех основных операций SQL, таких как SELECT, INSERT, UPDATE и DELETE, а также транзакций и подготовленных запросов. Поддержка большинства типов данных, включая целые числа, числа с плавающей точкой, строки, даты и времена, NULL и BLOB (binary large objects).

SQLite

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

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

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

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

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

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

Установка SQLite

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

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

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

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 .

Инструмент для работы с 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()

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

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 # Обновляем возраст пользователя

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

Использование оператора 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' ,))

?' , ( 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 ,))" width="640"

Использование 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' )

Использование агрегатных функций: 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)

Использование методов 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-значений NULL - это специальное значение, обозначающее отсутствие данных. При обработке NULL-значений, вы можете использовать операторы IS NULL и IS NOT 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 - это специальное значение, обозначающее отсутствие данных. При обработке NULL-значений, вы можете использовать операторы IS NULL и IS NOT 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()

Как связать 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() …… .

Как связать 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()

…… .

Сохранить у себя:
Работа с базами данных во фреймворке Flask. Лекция

Получите свидетельство о публикации сразу после загрузки работы



Получите бесплатно свидетельство о публикации сразу после добавления разработки