You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iTi-Flask/README.md

86 lines
2.0 KiB
Markdown

# iTi-Flask
iTi-Flask 是基于 APIFlask / Flask 的轻量后端框架基座。
它只提供工程底座和架构约束。
它不是业务应用。
它不内置用户、角色、菜单等系统业务。
它不内置前端产物。
它可以按配置承载业务项目自己的 SPA 静态目录。
## 当前边界
框架内置:
- 应用工厂和配置加载。
- SQLAlchemy、Flask-Migrate、JWT、缓存、限流、日志、错误处理。
- 进程内 module 协议。
- HTTP JSON service client。
- 单进程 task runner。
- 可选 SPA 静态目录承载。
- Copier 业务项目模板。
框架不内置:
- `sys_*` 表。
- 认证、用户、角色、菜单、部门、字典、配置、文件、日志等系统业务。
- 系统 seed。
- 系统 migration。
- ERP 能力。
- 前端构建产物。
系统业务放在独立包 `iti-system`
MES 这类主业务项目按需依赖 `iti-flask + iti-system`
ERP Service 这类服务只依赖 `iti-flask`
## 开发
```bash
uv sync --extra dev
uv run --extra dev pytest
uv run --extra dev mypy
```
需要覆盖可选依赖时:
```bash
uv run --extra dev --extra mysql --extra image --extra excel pytest
```
## 业务项目生成
```bash
uvx copier copy ./copier-template ../my-business-app
```
业务项目依赖 iTi-Flask 的 Git tag。
框架升级后,业务项目更新依赖 tag。
## 系统业务
需要用户、角色、菜单等能力时,业务项目额外依赖 `iti-system`,并在 `modules` 中注册:
```python
from iti_system import create_system_module
modules = [
create_system_module(),
]
```
`iti-system` 引入即全量引入。
不提供系统模块选择。
不拆分系统 migration。
`iti-system` 自己提供系统 seed 和系统 migration 同步命令。
## 文档
- [框架边界](docs/FRAMEWORK_BOUNDARY.md)
- [架构重构计划](docs/ARCHITECTURE_REFACTOR_PLAN.md)
- [模块协议](docs/MODULES.md)
- [数据库迁移](docs/MIGRATIONS.md)
- [种子数据](docs/SEEDS.md)
- [服务客户端](docs/SERVICE_CLIENT.md)
- [任务运行器](docs/TASKS.md)