Files
huihuiSquare/backend/app/core/config.py
stefanfeng 0cfc9bf9c8 feat: AI虚拟用户新闻互动系统 v1.3.0 初始提交
- 虚拟用户管理(昵称/头像/性别/简介/邮箱同步到目标平台)
- AI互动调度(点赞/收藏/评论/转发)
- 日志时间改为北京时间
- 评论达上限后继续执行点赞收藏转发
- 一键登出全部功能
- 浅色主题UI
2026-03-31 10:20:57 +08:00

47 lines
1.5 KiB
Python

"""系统配置"""
import os
from urllib.parse import quote_plus
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
# 数据库
DB_HOST: str = os.getenv("DB_HOST", "localhost")
DB_PORT: int = int(os.getenv("DB_PORT", "3306"))
DB_USER: str = os.getenv("DB_USER", "aivirtual")
DB_PASSWORD: str = os.getenv("DB_PASSWORD", "AiVirtual2024")
DB_NAME: str = os.getenv("DB_NAME", "ai_virtual_news")
# Redis
REDIS_HOST: str = os.getenv("REDIS_HOST", "localhost")
REDIS_PORT: int = int(os.getenv("REDIS_PORT", "6379"))
# 安全
SECRET_KEY: str = os.getenv("SECRET_KEY", "dev-secret-key-change-in-prod")
AES_KEY: str = os.getenv("AES_KEY", "your-aes-key-32-chars-change-now!")
# 新闻平台
NEWS_PLATFORM_BASE_URL: str = os.getenv(
"NEWS_PLATFORM_BASE_URL", "http://192.168.1.200:63120"
)
# 日志目录
LOG_DIR: str = "/app/logs"
@property
def DATABASE_URL(self) -> str:
# 对密码做 URL 编码,防止 @ # ! 等特殊字符破坏连接字符串
pwd = quote_plus(self.DB_PASSWORD)
return f"mysql+aiomysql://{self.DB_USER}:{pwd}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}?charset=utf8mb4"
@property
def SYNC_DATABASE_URL(self) -> str:
pwd = quote_plus(self.DB_PASSWORD)
return f"mysql+pymysql://{self.DB_USER}:{pwd}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}?charset=utf8mb4"
class Config:
env_file = ".env"
settings = Settings()