| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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",
- )
- settings = Settings()
|