/
YamangulovAN
/
python_advanced
Обзор
Документация
Войти
/
YamangulovAN
/
python_advanced
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
module_26_fastapi/homework/database.py
39 строк
1 KB
Andrei Iamangulov
homework module 26
07 ноя 2025, 10:43
07 ноя 2025, 10:43
72fd702
Код
Авторство
О чём код?
""" Модуль database.py Инициализация асинхронной БД и сессий для работы через FastAPI. """ from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine, AsyncSession from sqlalchemy.orm import sessionmaker, declarative_base from sqlalchemy.ext.declarative import DeclarativeMeta DB_URL = "sqlite+aiosqlite:///./db.sqlite3" Base: DeclarativeMeta = declarative_base() engine: AsyncEngine = create_async_engine(DB_URL, echo=True, future=True) async_session = sessionmaker(engine, expire_on_commit=False, class_=AsyncSession) async def get_async_session(): """ Провайдер асинхронной сессии. """ async with async_session() as session: yield session async def init_db(): """ Создание всех таблиц в БД. """ async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) async def reset_db(): """ Очистка всех таблиц в БД. (для тестов в мое случае) """ async with engine.begin() as conn: await conn.run_sync(Base.metadata.drop_all) await conn.run_sync(Base.metadata.create_all)