| 12345678910111213141516171819202122232425 |
- 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:
- 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
|