from pydantic_settings import BaseSettings, SettingsConfigDict from typing import List from dotenv import load_dotenv import os load_dotenv() class Settings(BaseSettings): # 基础配置 PROJECT_NAME: str = "Alien Cloud Python" API_V1_STR: str = "/api/v1" # 鉴权配置 (原 alien-gateway 职责) SECRET_KEY: str = os.getenv("SECRET_KEY") ALGORITHM: str = os.getenv("ALGORITHM") ACCESS_TOKEN_EXPIRE_MINUTES: int = os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES") # 7天 # 数据库配置 DB_USER: str = os.getenv("DB_USER") DB_PASSWORD: str = os.getenv("DB_PASSWORD") DB_HOST: str = os.getenv("DB_HOST") DB_PORT: int = os.getenv("DB_PORT") DB_NAME: str = os.getenv("DB_NAME") # redis配置 # REDIS_URL: str = "redis://:Alien123456@172.31.154.180:30002/0" REDIS_URL: str = os.getenv("REDIS_URL") # 下游服务地址 STORE_BASE_URL: str = os.getenv("STORE_BASE_URL") # alien_store 服务地址 # 阿里云短信配置 ALIYUN_SMS_SIGN_NAME_CONTRACT: str = os.getenv("ALIYUN_SMS_SIGN_NAME_CONTRACT") ALIYUN_SMS_TEMPLATE_CODE_CONTRACT: str = os.getenv("ALIYUN_SMS_TEMPLATE_CODE_CONTRACT") ALIYUN_ACCESS_KEY_ID: str = os.getenv("ALIYUN_ACCESS_KEY_ID") ALIYUN_ACCESS_KEY_SECRET: str = os.getenv("ALIYUN_ACCESS_KEY_SECRET") @property def SQLALCHEMY_DATABASE_URI(self) -> str: return f"mysql+pymysql://{self.DB_USER}:{self.DB_PASSWORD}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}" model_config = SettingsConfigDict( case_sensitive=True, env_file=".env.dev", ) settings = Settings()