签入版本

This commit is contained in:
2026-09-12 19:51:59 +08:00
parent 15c01c5d92
commit abd964d89a
10 changed files with 20 additions and 20 deletions
+4 -4
View File
@@ -18,7 +18,7 @@ DjangoAdmin Flask+EleVue is a separated frontend-backend admin framework. Backen
# Install dependencies
pip install -r requirements.txt
# Run dev server (default: 127.0.0.1:8021)
# Run dev server (default: 127.0.0.1:8023)
python app.py
# Database migrations (Flask-Migrate/Alembic)
@@ -36,7 +36,7 @@ cd ui
# Install dependencies (uses pnpm)
pnpm install
# Run dev server (default: localhost:8001, proxies /api to backend :8021)
# Run dev server (default: localhost:8001, proxies /api to backend :8023)
pnpm run dev
# Build for production
@@ -111,7 +111,7 @@ The framework uses an AOP-style transaction interceptor (`src/middleware/transac
- Frontend response handler checks `code === 0` for success; `code=401` triggers re-login
- **统一约定:所有响应(含认证/权限失败 401/403)返回 HTTP 200 + 业务 code**,不返回对应 HTTP 状态码——前端按 `code` 判断(401 重登、403 无权限)。若需按 HTTP 状态码防护(WAF/代理),应解析业务 code 而非 HTTP status
- Permission strings follow pattern: `sys:module:action` (e.g., `sys:user:page`, `sys:role:add`)
- Frontend proxies `/api` prefix to backend via Vite dev server proxy (configured in `ui/.env.development` as `VITE_PROXY=[["/api","http://127.0.0.1:8021/"]]`)
- Frontend proxies `/api` prefix to backend via Vite dev server proxy (configured in `ui/.env.development` as `VITE_PROXY=[["/api","http://127.0.0.1:8023/"]]`)
### Naming Conventions
@@ -137,7 +137,7 @@ The framework uses an AOP-style transaction interceptor (`src/middleware/transac
## Environment Configuration
All config is in `.env` at project root. Key settings:
- `FLASK_HOST` / `FLASK_PORT` (default 127.0.0.1:8021)
- `FLASK_HOST` / `FLASK_PORT` (default 127.0.0.1:8023)
- `FLASK_SECRET_KEY` — must be >= 16 chars or app refuses to start
- `DB_*` — 数据库连接,**多库支持**(`config/database.py` 的 `_build_database_url()` 按 `DB_DRIVER` 构建 URL):`mysql`(默认)/`postgresql`/`mssql`/`sqlite`/`oracle`(oracledb 驱动,thin 模式无需 Oracle Client;`DB_DATABASE` 填 SERVICE_NAME)。切换只需改 `DB_DRIVER` + 账号,然后运行 `python scripts/setup_db.py`(`create_all` 建表 + 种子数据,幂等)。注意:`flask db migrate/upgrade`(方案 B)仍针对 MySQL,新建其它库请用 `scripts/setup_db.py`
- **跨库数据迁移**:`python scripts/migrate_db.py --src-driver=mysql --src-host=127.0.0.1 --src-port=3306 --src-db=<源库名> --src-user=root --src-pass=<密码> --dst-driver=postgresql --dst-host=127.0.0.1 --dst-port=5432 --dst-db=<目标库名> --dst-user=postgres --dst-pass=<密码> --drop-target-first`。CLI 显式参数、不依赖 `.env`;源/目标均支持 `mysql/postgresql/mssql/sqlite/oracle`(别名 `postgres=postgresql`、`sqlserver=mssql`、`sqlite3=sqlite`),自动建目标库 + `create_all` 建表 + 逐表泵数据 + 按方言重置自增(PG setval / MSSQL CHECKIDENT / Oracle 补 sequence+触发器)+ 逐表行数校验;先加 `--dry-run` 干跑核对计划