主要变更: config - 引入 python-dotenv,从 .env 加载 SECRET_KEY / MAIL_* / SQLALCHEMY_DATABASE_URI - 拆分 BaseConfig / DevConfig / ProConfig,PEAR_ENV 控制切换 - ProConfig 在 init_app() 校验 SECRET_KEY,禁止使用默认值 ops - 新增 /healthz 端点:DB 探活 + 环境名 + 时间戳,失败返回 503 - 新增 start.bat (Windows) / Makefile (跨平台) 一键启动 / 初始化 - 新增 .env.example 模板;.gitignore 排除 .env / logs / vscode 等 - 新增 docs/DEPLOY.md(部署指南)和 docs/SECURITY.md(安全清单) - app.py 不再硬编码 debug=False,交给配置类决定 本提交不包含上一次会话的其它工作树修改(模板/导航相关),后续单独 PR。
70 lines
2.2 KiB
Makefile
70 lines
2.2 KiB
Makefile
# ============================================================
|
||
# Pear Admin Flask - Makefile(跨平台,Windows 下需用 Git Bash / WSL)
|
||
#
|
||
# 用法(在项目根目录):
|
||
# make help 查看所有命令
|
||
# make venv 创建虚拟环境
|
||
# make install 安装依赖
|
||
# make migrate 执行 db migrate + upgrade
|
||
# make seed 导入 admin 基础数据(app_data/init.json)
|
||
# make init 等价于 migrate + seed
|
||
# make run 开发模式启动(PEAR_ENV=dev)
|
||
# make run-prod 生产模式启动(PEAR_ENV=production,要求 .env SECRET_KEY)
|
||
# make clean 清理缓存与数据库(危险!请先备份)
|
||
# make health curl /healthz
|
||
# ============================================================
|
||
|
||
PY ?= python
|
||
VENV ?= venv
|
||
PYBIN := $(VENV)/bin/python
|
||
PIP := $(PYBIN) -m pip
|
||
FLASK := $(PYBIN) -m flask
|
||
APP := app.py
|
||
|
||
.PHONY: help venv install migrate seed init run run-prod clean health
|
||
|
||
help:
|
||
@echo "可用命令:"
|
||
@echo " make venv 创建虚拟环境"
|
||
@echo " make install 安装依赖"
|
||
@echo " make migrate db migrate + upgrade"
|
||
@echo " make seed flask admin init"
|
||
@echo " make init migrate + seed"
|
||
@echo " make run 开发模式启动(默认端口 5000)"
|
||
@echo " make run-prod 生产模式启动(强制要求 .env SECRET_KEY)"
|
||
@echo " make health curl http://127.0.0.1:5000/healthz"
|
||
@echo " make clean 清理 pyc / __pycache__ / pear.db / flask_session"
|
||
|
||
venv:
|
||
@test -d "$(VENV)" || $(PY) -m venv $(VENV)
|
||
@echo "[venv] 已创建 $(VENV)"
|
||
|
||
install: venv
|
||
$(PIP) install --upgrade pip
|
||
$(PIP) install -r requirements.txt
|
||
|
||
migrate:
|
||
$(FLASK) db migrate
|
||
$(FLASK) db upgrade
|
||
|
||
seed:
|
||
$(FLASK) admin init
|
||
|
||
init: migrate seed
|
||
|
||
run:
|
||
PEAR_ENV=dev $(PYBIN) $(APP)
|
||
|
||
run-prod:
|
||
PEAR_ENV=production $(PYBIN) $(APP)
|
||
|
||
health:
|
||
@curl -sS http://127.0.0.1:5000/healthz | python -m json.tool
|
||
|
||
clean:
|
||
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
|
||
find . -type d -name ".pytest_cache" -exec rm -rf {} + 2>/dev/null || true
|
||
find . -type f -name "*.pyc" -delete
|
||
rm -rf flask_session
|
||
@echo "[clean] 已清理缓存。注意:pear.db 请手动备份后删除。"
|