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.
86 lines
2.0 KiB
Markdown
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)
|