from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker Base = declarative_base() user = "" password = "" host = "" db = '' def get_engine(): engine = create_engine( f"mysql+pymysql://{'user'}:{'password'}@{'host'}/{'db'}?charset=utf8mb4") return engine def get_db() -> sessionmaker: try: engine = get_engine() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) db = Session() yield db finally: db.close() # def get_db(): # engine = create_engine("sqlite:///./data.db", connect_args={"check_same_thread": False}) # SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # db = SessionLocal() # try: # yield db # finally: # db.close() def init_database(): engine = get_engine() Base.metadata.create_all(bind=engine)