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

84 lines
1.9 KiB
Markdown

# iTi-Flask
iTi-Flask 是 FastAPI 后端框架基座。
名称保留历史包名,运行时已经不依赖 Flask/APIFlask。
它提供业务项目常用的通用能力:
- FastAPI 应用工厂。
- dataclass 配置和 `.env` 加载。
- MySQL 默认数据库配置。
- SQLAlchemy 2 和 Alembic。
- JWT、权限依赖、错误处理、响应包装。
- 用户 token / 服务 token 的统一 Actor 依赖。
- 缓存、限流、事件总线。
- 模块注册、权限元数据、菜单 seed 元数据。
- 同步 HTTP 服务客户端。
- 运行日志和审计事件 sender。
- 单机轻量任务 runner。
- `/health``/ready` 健康检查。
- Copier 业务项目模板。
系统业务不在框架内。
需要用户、角色、菜单、字典、文件、日志等能力时,业务项目额外注册 `iti-system`
## 安装
框架本地开发:
```bash
uv sync --extra dev
```
业务项目依赖:
```toml
dependencies = [
"iti-flask @ git+ssh://git@your-git/iTi/iTi-Flask.git@v0.1.1",
]
```
## 应用工厂
```python
from iti import create_app
from config import config
from my_app.modules.example import ExampleModule
app = create_app(
config_mapping=config,
modules=[ExampleModule()],
)
```
运行:
```bash
uv run uvicorn app:app --reload
```
## 业务项目生成
```bash
uvx copier copy ./copier-template ../my-business-app
cd ../my-business-app
uv sync --extra dev
uv run alembic upgrade head
uv run uvicorn app:app --reload
```
## 文档
- [文档索引](docs/README.md)
- [架构](docs/ARCHITECTURE.md)
- [配置](docs/CONFIGURATION.md)
- [模块协议](docs/MODULES.md)
- [服务客户端](docs/SERVICE_CLIENT.md)
- [任务运行器](docs/TASKS.md)
- [数据库迁移](docs/MIGRATIONS.md)
- [种子数据](docs/SEEDS.md)
- [Copier 模板](docs/COPIER_TEMPLATE.md)
- [前端管理端接口契约](docs/FRONTEND_ADMIN_API_CONTRACT.md)
- [测试与部署方案](docs/TESTING_DEPLOYMENT.md)