| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- from typing import List, Optional, Any
- from pydantic_settings import BaseSettings, SettingsConfigDict
- class AppSettings(BaseSettings):
- """
- 应用配置
- """
- model_config = SettingsConfigDict(env_prefix='app_', extra='ignore')
-
- # 应用运行环境
- env: Optional[str] = None
- # 应用名称
- name: Optional[str] = None
- # 应用代理路径
- root_path: Optional[str] = None
- # 应用主机
- host: Optional[str] = None
- # 应用端口
- port: Optional[int] = None
- # 应用版本
- version: Optional[str] = None
- # 应用是否允许跨域
- origins: Optional[List[str]] = None
- # 应用是否开启热重载
- reload: Optional[bool] = None
- # 应用是否开启IP归属区域查询
- ip_location_query: Optional[bool] = None
- # 应用是否允许账号同时登录
- same_time_login: Optional[bool] = None
-
- def __getattr__(self, name: str) -> Any:
- """
- 忽略大小写获取属性
- """
- for key in self.__dict__:
- if key.lower() == name.lower():
- return self.__dict__[key]
- raise AttributeError(f"'AppSettings' object has no attribute '{name}'")
|