from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, DeclarativeBase import os # 使用绝对路径 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DATABASE_URL = f"sqlite:///{os.path.join(BASE_DIR, 'data', 'app.db')}" engine = create_engine(DATABASE_URL, connect_args={"check_same_thread": False}) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) class Base(DeclarativeBase): pass def get_db(): db = SessionLocal() try: yield db finally: db.close()