database.py 1015 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from urllib.parse import quote_plus as urlquote
  2. from pydantic.v1 import BaseSettings
  3. class Settings(BaseSettings):
  4. """mysql db"""
  5. DB_HOST: str = "127.0.0.1"
  6. DB_PORT: int = 3306
  7. DB_DATABASE: str = "open_assistant"
  8. DB_USER: str = "root"
  9. DB_PASSWORD: str = "123456"
  10. DB_POOL_SIZE: int = 20
  11. DB_POOL_RECYCLE: int = 3600
  12. @property
  13. def database_url(self):
  14. return f"mysql+pymysql://{self.DB_USER}:{urlquote(self.DB_PASSWORD)}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_DATABASE}"
  15. @property
  16. def async_database_url(self):
  17. return f"mysql+aiomysql://{self.DB_USER}:{urlquote(self.DB_PASSWORD)}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_DATABASE}"
  18. class Config:
  19. env_file = ".env"
  20. class RedisSettings(BaseSettings):
  21. """redis"""
  22. REDIS_HOST: str = "localhost"
  23. REDIS_PORT: int = 6379
  24. REDIS_DB: int = 0
  25. REDIS_PASSWORD: str = None
  26. class Config:
  27. env_file = ".env"
  28. db_settings = Settings()
  29. redis_settings = RedisSettings()