feat: 页面顶部环境徽标(防混库第 4 层)
启动日志和横幅只在日志里;用户在界面上操作时也该一眼看出连的是哪个库。 生产显示红底 'PROD · <库名@主机/库>',开发显示灰底 'DEV',鼠标悬停给出完整目标。 环境信息由 core/db_config.env_badge() 提供(不含密码),web_server 注入 Jinja 全局。
This commit is contained in:
@@ -263,6 +263,25 @@ def print_banner():
|
||||
_log.info(text_block)
|
||||
|
||||
|
||||
def env_badge():
|
||||
"""给页面顶部徽标用的环境信息(不含密码)。
|
||||
|
||||
防混库的第 4 层:光靠启动日志不够——用户点开任何页面都该一眼看出
|
||||
自己正在操作哪个库。生产用红底。
|
||||
"""
|
||||
try:
|
||||
from core.models import db
|
||||
backend = "sqlite" if is_sqlite(db.engine.url) else "mysql"
|
||||
except Exception:
|
||||
backend = "?"
|
||||
try:
|
||||
target = describe_target()
|
||||
except Exception:
|
||||
target = DB_HOST or "(未配置)"
|
||||
return {"env": DEPLOY_ENV, "is_prod": DEPLOY_ENV == "prod",
|
||||
"backend": backend, "target": target}
|
||||
|
||||
|
||||
def _now():
|
||||
import time
|
||||
return time.strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
Reference in New Issue
Block a user