generated from root/feiqiu-ETL
正式起服务打底
This commit is contained in:
48
app/config.py
Normal file
48
app/config.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# app/config.py
|
||||
import os
|
||||
from functools import lru_cache
|
||||
|
||||
|
||||
class Settings:
|
||||
"""
|
||||
后端配置:
|
||||
- APP_ENV: dev / prod
|
||||
- DB_*: 数据库连接参数
|
||||
- 默认库:dev 用 LLZQ-test;prod 用 LLZQ
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
self.app_env = os.getenv("APP_ENV", "dev").lower()
|
||||
|
||||
self.db_host = os.getenv("DB_HOST", "127.0.0.1")
|
||||
self.db_port = int(os.getenv("DB_PORT", "5432"))
|
||||
self.db_user = os.getenv("DB_USER", "local-Python")
|
||||
self.db_password = os.getenv("DB_PASSWORD", "")
|
||||
|
||||
# 默认连接的库,根据 APP_ENV 决定
|
||||
if self.app_env == "prod":
|
||||
self.db_name_default = "LLZQ"
|
||||
else:
|
||||
self.db_name_default = "LLZQ-test"
|
||||
|
||||
self.db_schema = os.getenv("DB_SCHEMA", "XCX")
|
||||
|
||||
def resolve_db_name(self, env_header: str | None) -> str:
|
||||
"""
|
||||
根据前端传来的 X-LLZQ-Env 决定最终使用哪个 DB:
|
||||
- "prod" => LLZQ
|
||||
- 其它/为空 => LLZQ-test
|
||||
"""
|
||||
if env_header is None:
|
||||
return self.db_name_default
|
||||
|
||||
env_header = env_header.lower()
|
||||
if env_header == "prod":
|
||||
return "LLZQ"
|
||||
else:
|
||||
return "LLZQ-test"
|
||||
|
||||
|
||||
@lru_cache()
|
||||
def get_settings() -> Settings:
|
||||
return Settings()
|
||||
Reference in New Issue
Block a user