api/app/core/config.py
2025-04-10 11:38:15 +08:00

57 lines
1.9 KiB
Python

from pydantic_settings import BaseSettings
from typing import Optional, List
import os
from dotenv import load_dotenv
load_dotenv()
class Settings(BaseSettings):
API_V1_STR: str = "/api/v1"
PROJECT_NAME: str = "美搭Meida API"
PROJECT_DESCRIPTION: str = "美搭Meida服务后端API"
PROJECT_VERSION: str = "0.1.0"
# CORS设置
BACKEND_CORS_ORIGINS: List[str] = ["*"]
# 数据库设置
DB_HOST: str = os.getenv("DB_HOST", "localhost")
DB_PORT: str = os.getenv("DB_PORT", "3306")
DB_USER: str = os.getenv("DB_USER", "root")
DB_PASSWORD: str = os.getenv("DB_PASSWORD", "password")
DB_NAME: str = os.getenv("DB_NAME", "meida")
DB_ECHO: bool = os.getenv("DB_ECHO", "False").lower() == "true"
# DashScope API密钥
DASHSCOPE_API_KEY: str = os.getenv("DASHSCOPE_API_KEY", "")
DASHSCOPE_MODEL: str = os.getenv("DASHSCOPE_MODEL", "qwen-max")
# 安全设置
SECRET_KEY: str = os.getenv("SECRET_KEY", "your-secret-key-for-jwt-please-change-in-production")
ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7天
# 微信设置
WECHAT_APP_ID: str = os.getenv("WECHAT_APP_ID", "")
WECHAT_APP_SECRET: str = os.getenv("WECHAT_APP_SECRET", "")
# 腾讯云COS配置
COS_SECRET_ID: str = os.getenv("COS_SECRET_ID", "")
COS_SECRET_KEY: str = os.getenv("COS_SECRET_KEY", "")
COS_REGION: str = os.getenv("COS_REGION", "ap-guangzhou")
COS_BUCKET: str = os.getenv("COS_BUCKET", "")
@property
def cors_origins(self):
"""获取CORS来源列表"""
if isinstance(self.BACKEND_CORS_ORIGINS, str) and self.BACKEND_CORS_ORIGINS == "*":
return ["*"]
elif isinstance(self.BACKEND_CORS_ORIGINS, list):
return self.BACKEND_CORS_ORIGINS
return []
class Config:
env_file = ".env"
case_sensitive = True
settings = Settings()