config.py 959 B

12345678910111213141516171819202122232425
  1. import os
  2. from dotenv import load_dotenv
  3. # 加载项目根目录下的 .env 文件
  4. env_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), '.env')
  5. load_dotenv(env_path, interpolate=True)
  6. basedir = os.path.abspath(os.path.dirname(__file__))
  7. def _build_database_uri():
  8. """从 .env 中的独立配置项拼接 DATABASE_URL"""
  9. user = os.environ.get('DB_USER', '')
  10. password = os.environ.get('DB_PASSWORD', '')
  11. host = os.environ.get('DB_HOST', '')
  12. port = os.environ.get('DB_PORT', '5432')
  13. name = os.environ.get('DB_NAME', '')
  14. if all([user, password, host, name]):
  15. return f'postgresql://{user}:{password}@{host}:{port}/{name}'
  16. return os.environ.get('DATABASE_URL', '')
  17. class Config:
  18. SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
  19. SQLALCHEMY_DATABASE_URI = _build_database_uri() or \
  20. 'sqlite:///' + os.path.join(basedir, 'app.db')
  21. SQLALCHEMY_TRACK_MODIFICATIONS = False