/
zaler
/
FastAPI_pet_project
Обзор
Документация
Войти
/
zaler
/
FastAPI_pet_project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
repository.py
37 строк
2 KB
egor chikalin
first_commit
18 окт 2024, 17:46
18 окт 2024, 17:46
c7fd6ca
Код
Авторство
О чём код?
from sqlalchemy import select from database import new_session, TaskOrm from schemas import STaskAdd, STask # код для реализации шаблона проектирования Repository # класс реализующий репозиторий задач class TaskRepository: # добавление одной задачи @classmethod async def add_one(cls, data: STaskAdd) -> int: # объявление контекстного менеджера сессии async with new_session() as session: # создаем словарь задач task_dict = data.model_dump() # создаем проект модели данных класса "задача" из словаря task = TaskOrm(**task_dict) # добавляем запись в таблицу базы данных session.add(task) await session.flush() # фиксируем изменения в базе данных await session.commit() return task.id # поиск всех задач @classmethod async def find_all(cls) -> list[STask]: # объявляем контекстный менеджер сессий async with new_session() as session: # создаем запрос на выбор всех данных из таблицы базы данных query = select(TaskOrm) # сохраняем результат запроса в отдельную переменную result = await session.execute(query) # получаем объекты базы данных task_models = result.scalars().all()