feat: configuration FastAPI et moteur SQLAlchemy async

This commit is contained in:
2026-05-24 04:49:41 +02:00
parent b46c8351df
commit ee00848fdc
2 changed files with 36 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
from pydantic_settings import BaseSettings, SettingsConfigDict
from pathlib import Path
class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8")
database_url: str = "postgresql+asyncpg://homehub:homehub@localhost:5432/homehub"
upload_dir: str = "/uploads"
cors_origins: str = "http://localhost:3000"
@property
def cors_origins_list(self) -> list[str]:
return [o.strip() for o in self.cors_origins.split(",")]
@property
def upload_path(self) -> Path:
return Path(self.upload_dir)
settings = Settings()
+15
View File
@@ -0,0 +1,15 @@
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from sqlalchemy.orm import DeclarativeBase
from app.core.config import settings
engine = create_async_engine(settings.database_url, pool_pre_ping=True)
AsyncSessionLocal = async_sessionmaker(engine, expire_on_commit=False)
class Base(DeclarativeBase):
pass
async def get_session() -> AsyncSession:
async with AsyncSessionLocal() as session:
yield session