import os from dotenv import load_dotenv from sqlalchemy import URL, create_engine from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.orm import declarative_base, sessionmaker # 加载环境变量 load_dotenv() # 从环境变量获取数据库配置 DB_USER = os.getenv('DB_USER', 'root') DB_PASSWORD = os.getenv('DB_PASSWORD', 'abc123') DB_HOST = os.getenv('DB_HOST', 'localhost') DB_PORT = os.getenv('DB_PORT', '3306') DB_NAME = os.getenv('DB_NAME', 'dashboard') uri = f'mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}' engine = create_engine(uri) session = sessionmaker(bind=engine) async_uri = f'mysql+aiomysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}' async_engine = create_async_engine(async_uri) asyncSession = sessionmaker( bind=async_engine, class_=AsyncSession, expire_on_commit=False ) Base = declarative_base()