| 1234567891011121314151617181920212223242526272829303132333435363738 |
- from pydantic_settings import BaseSettings, SettingsConfigDict
- import os
- from pathlib import Path
- from urllib.parse import quote_plus
- class Settings(BaseSettings):
- DB_HOST: str
- DB_PORT: int = 3306
- DB_USER: str
- DB_PASSWORD: str
- DB_NAME: str
- DB_CHARSET: str
- API_URL: str
- LIMIT_DAY: int
- CRON_HOUR: int = 8
- CRON_MINUTE: int = 0
- ALIYUN_ACCESS_KEY_ID: str = ""
- ALIYUN_ACCESS_KEY_SECRET: str = ""
- ALIYUN_REGION_ID: str = "cn-hangzhou"
- ENABLE_MONITOR: bool = False
- @property
- def DATABASE_URL(self) -> str:
- return f"mysql+aiomysql://{quote_plus(self.DB_USER)}:{quote_plus(self.DB_PASSWORD)}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}?charset={self.DB_CHARSET}"
- model_config = SettingsConfigDict(
- env_file=".env", # 指定.env文件路径(项目根目录)
- env_file_encoding="utf-8" # 解决中文注释乱码问题
- )
- # 使用绝对路径尝试加载
- env_path = Path(__file__).parent.parent.parent / ".env"
- settings = Settings(_env_file=env_path)
|