Flask-SQLAlchemy представляет собой удобное расширение для интеграции ORM SQLAlchemy во Flask-приложения. В данной статье мы рассмотрим основные аспекты работы с данными через Flask-SQLAlchemy.
Запросы к данным
Flask-SQLAlchemy предоставляет интуитивный и гибкий интерфейс для создания запросов к данным:
# Получение всех записей
users = User.query.all()
# Фильтрация записей
users = User.query.filter_by(username='John').all()
# Получение одной записи по ID
user = User.query.get(1)
# Сортировка записей
users = User.query.order_by(User.username).all()
# Ограничение количества записей
users = User.query.limit(10).all()
Добавление и обновление данных
Для добавления новых записей или обновления существующих используйте сессию SQLAlchemy:
# Создание нового пользователя
user = User(username='John', email='[email protected]')
# Добавление пользователя в сессию
db.session.add(user)
# Обновление данных пользователя
user.email = '[email protected]'
# Завершение сессии (добавление и обновление данных)
db.session.commit()
Удаление данных
Удаление данных выполняется с помощью метода db.session.delete()
:
# Получение пользователя по ID
user = User.query.get(1)
# Удаление пользователя из сессии
db.session.delete(user)
# Завершение сессии (удаление данных)
db.session.commit()
Отношения между таблицами
Flask-SQLAlchemy поддерживает создание отношений между таблицами через связи между моделями:
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(120), nullable=False)
content = db.Column(db.Text, nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
author = db.relationship('User', backref=db.backref('posts', lazy=True))
# Создание нового поста и связывание его с пользователем
post = Post(title='First Post', content='Hello, World!', author=user)
# Получение всех постов пользователя
user_posts = user.posts
Работа с данными через Flask-SQLAlchemy во Flask предоставляет мощный и гибкий инструментарий для взаимодействия с базами данных. Выполняя запросы, добавление, обновление и удаление данных, а также создавая отношения между таблицами, вы можете строить сложные и надежные веб-приложения, обеспечивая эффективное управление данными.