import os from urllib.parse import quote_plus # 数据库驱动 DB_DRIVER = os.getenv('DB_DRIVER', 'mysql') # 数据库地址 DB_HOST = os.getenv('DB_HOST', '127.0.0.1') # 数据库端口 DB_PORT = int(os.getenv('DB_PORT', '3306')) # 数据库名称 DB_DATABASE = os.getenv('DB_DATABASE', 'djangoadmin.fastapi.elevue') # 数据库账号 DB_USERNAME = os.getenv('DB_USERNAME', 'root') # 数据库密码 DB_PASSWORD = os.getenv('DB_PASSWORD', '') # 数据表前缀 DB_PREFIX = os.getenv('DB_PREFIX', 'fastapi_') # 是否开启调试模式 DB_DEBUG = (os.getenv('DB_DEBUG', 'True') == 'True') # 连接池大小(每个 worker 保持的常驻连接数) DB_POOL_SIZE = int(os.getenv('DB_POOL_SIZE', '20')) # 连接池最大溢出(超出 pool_size 后允许临时创建的连接数) DB_MAX_OVERFLOW = int(os.getenv('DB_MAX_OVERFLOW', '2')) # 连接回收时间(秒),应小于 MySQL wait_timeout DB_POOL_RECYCLE = int(os.getenv('DB_POOL_RECYCLE', '1800')) # 获取连接超时(秒),池满且无可用连接时的等待时间 DB_POOL_TIMEOUT = int(os.getenv('DB_POOL_TIMEOUT', '15')) # 连接建立超时(秒) DB_CONNECT_TIMEOUT = int(os.getenv('DB_CONNECT_TIMEOUT', '60')) # MySQL数据库链接 SQLALCHEMY_MYSQL_URL = 'mysql+pymysql://' + quote_plus(DB_USERNAME) + ':' + quote_plus(DB_PASSWORD) + '@' + DB_HOST + ':' + str( DB_PORT) + '/' + DB_DATABASE + '?charset=utf8mb4' # PostgreSQL数据库链接(预留扩展) SQLALCHEMY_POSTGRESQL_URL = "postgresql://user:password@postgresserver/db" # SQLite数据库链接(预留扩展) SQLALCHEMY_SQLITE_URL = "sqlite:///./test.db"