From 3a2a89385ca64f73008eeb5ba87d5563a8ee41df Mon Sep 17 00:00:00 2001 From: nora Date: Mon, 3 Apr 2023 10:41:48 +0200 Subject: [PATCH] Add settings --- app/config.py | 20 ++++++++++++++++++++ app/database.py | 9 ++++----- 2 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 app/config.py diff --git a/app/config.py b/app/config.py new file mode 100644 index 0000000..0de20e0 --- /dev/null +++ b/app/config.py @@ -0,0 +1,20 @@ +from functools import lru_cache + +from pydantic import BaseSettings, EmailStr + + +class Settings(BaseSettings): + app_name: str = "fastapi-sandbox" + admin_email: EmailStr | None + database_url: str = "sqlite:///db.sqlite3" + + class Config: + env_file = ".env" + + +@lru_cache() +def get_settings(): + return Settings() + + +settings = get_settings() diff --git a/app/database.py b/app/database.py index 9d3f9ee..7543735 100644 --- a/app/database.py +++ b/app/database.py @@ -1,12 +1,11 @@ from sqlalchemy import create_engine from sqlalchemy.orm import declarative_base, sessionmaker -SQLALCHEMY_DATABASE_URL = "sqlite:///db.sqlite3" -# SQLALCHEMY_DATABASE_URL = "postgresql://user:password@postgresserver/db" +from .config import settings -engine = create_engine( - SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} -) +CHECK_SAME_THREAD = False if settings.database_url.startswith("sqlite") else True + +engine = create_engine(settings.database_url, connect_args={"check_same_thread": CHECK_SAME_THREAD}) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() -- 2.38.5