| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import os
- from dotenv import load_dotenv
- # 加载项目根目录下的 .env 文件
- env_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), '.env')
- load_dotenv(env_path, interpolate=True)
- basedir = os.path.abspath(os.path.dirname(__file__))
- def _build_database_uri():
- """从 .env 中的独立配置项拼接 DATABASE_URL"""
- user = os.environ.get('DB_USER', '')
- password = os.environ.get('DB_PASSWORD', '')
- host = os.environ.get('DB_HOST', '')
- port = os.environ.get('DB_PORT', '5432')
- name = os.environ.get('DB_NAME', '')
- if all([user, password, host, name]):
- return f'postgresql://{user}:{password}@{host}:{port}/{name}'
- return os.environ.get('DATABASE_URL', '')
- class Config:
- APP_NAME = os.environ.get('APP_NAME', '路桥采集平台')
- SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
- SQLALCHEMY_DATABASE_URI = _build_database_uri() or \
- 'sqlite:///' + os.path.join(basedir, 'app.db')
- SQLALCHEMY_TRACK_MODIFICATIONS = False
- # JWT 配置(用于本地 Token 签发)
- JWT_SECRET_KEY = os.environ.get('JWT_SECRET_KEY') or 'jwt-secret-change-me'
- JWT_ACCESS_TOKEN_EXPIRES = 1200 # 20 分钟
- JWT_REFRESH_TOKEN_EXPIRES = 86400 # 24 小时
- # SSO 统一认证配置
- SSO_BASE_URL = os.environ.get('SSO_BASE_URL', 'http://192.168.92.61:8200')
- SSO_CLIENT_ID = os.environ.get('SSO_CLIENT_ID', '')
- SSO_CLIENT_SECRET = os.environ.get('SSO_CLIENT_SECRET', '')
- SSO_REDIRECT_URI = os.environ.get('SSO_REDIRECT_URI', 'http://localhost:5000/auth/callback')
- SSO_FRONTEND_URL = os.environ.get('SSO_FRONTEND_URL', 'http://localhost:5000')
- SSO_SCOPE = os.environ.get('SSO_SCOPE', 'email')
- SSO_LOGOUT_REDIRECT_URL = os.environ.get('SSO_LOGOUT_REDIRECT_URL', 'http://192.168.92.61:9200/login')
- # 样本中心配置
- SAMPLE_CENTER_BASE_URL = os.environ.get('SAMPLE_CENTER_BASE_URL', 'http://192.168.92.61')
- SAMPLE_CENTER_APP_ID = os.environ.get('SAMPLE_CENTER_APP_ID', '')
- SAMPLE_CENTER_APP_SECRET = os.environ.get('SAMPLE_CENTER_APP_SECRET', '')
|