from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker, Session Base = declarative_base() user = "root" password = "123456" host = "127.0.0.1" db = 'daily' 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_i() -> Session: engine = get_engine() Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) db = Session() return db # 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)