41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from pydantic_settings import BaseSettings
|
|
from functools import lru_cache
|
|
|
|
class Settings(BaseSettings):
|
|
# 应用配置
|
|
APP_HOST: str = "0.0.0.0"
|
|
APP_PORT: int = 8000
|
|
APP_DEBUG: bool = True
|
|
|
|
# Railway数据库配置
|
|
RAILWAY_DB_HOST: str = "localhost"
|
|
RAILWAY_DB_PORT: int = 3306
|
|
RAILWAY_DB_USER: str = "root"
|
|
RAILWAY_DB_PASSWORD: str = ""
|
|
RAILWAY_DB_NAME: str = "railway"
|
|
|
|
# Tunnel数据库配置
|
|
TUNNEL_DB_HOST: str = "localhost"
|
|
TUNNEL_DB_PORT: int = 3306
|
|
TUNNEL_DB_USER: str = "root"
|
|
TUNNEL_DB_PASSWORD: str = ""
|
|
TUNNEL_DB_NAME: str = "Tunnel"
|
|
|
|
@property
|
|
def RAILWAY_DATABASE_URL(self) -> str:
|
|
return f"mysql+pymysql://{self.RAILWAY_DB_USER}:{self.RAILWAY_DB_PASSWORD}@{self.RAILWAY_DB_HOST}:{self.RAILWAY_DB_PORT}/{self.RAILWAY_DB_NAME}?charset=utf8mb4"
|
|
|
|
@property
|
|
def TUNNEL_DATABASE_URL(self) -> str:
|
|
return f"mysql+pymysql://{self.TUNNEL_DB_USER}:{self.TUNNEL_DB_PASSWORD}@{self.TUNNEL_DB_HOST}:{self.TUNNEL_DB_PORT}/{self.TUNNEL_DB_NAME}?charset=utf8mb4"
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
extra = "ignore"
|
|
|
|
@lru_cache()
|
|
def get_settings():
|
|
return Settings()
|
|
|
|
settings = get_settings()
|