| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- from pydantic_settings import BaseSettings
- from functools import lru_cache
- class Settings(BaseSettings):
- # Database
- DB_HOST: str = "47.99.164.66"
- DB_PORT: int = 3306
- DB_USER: str = "root"
- DB_PASSWORD: str = ""
- DB_NAME: str = "sx"
- # Redis
- REDIS_HOST: str = "47.99.164.66"
- REDIS_PORT: int = 16379
- REDIS_PASSWORD: str = ""
- REDIS_DB: int = 12
- # JWT (must match Java Sa-Token jwt-secret-key)
- JWT_SECRET_KEY: str = "abcdefghijklmnopqrstuvwxyz"
- JWT_ALGORITHM: str = "HS256"
- JWT_ACCESS_TOKEN_EXPIRE_MINUTES: int = 1440
- # App
- APP_HOST: str = "0.0.0.0"
- APP_PORT: int = 8080
- DEBUG: bool = True
- # Multi-tenant
- TENANT_ENABLE: bool = True
- @property
- def DATABASE_URL(self) -> str:
- return (
- f"mysql+pymysql://{self.DB_USER}:{self.DB_PASSWORD}"
- f"@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}?charset=utf8mb4"
- )
- @property
- def REDIS_URL(self) -> str:
- return f"redis://:{self.REDIS_PASSWORD}@{self.REDIS_HOST}:{self.REDIS_PORT}/{self.REDIS_DB}"
- model_config = {"env_file": ".env", "env_file_encoding": "utf-8"}
- @lru_cache
- def get_settings() -> Settings:
- return Settings()
|