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

93 lines
1.9 KiB
Markdown

# iTi-Flask
iTi-Flask 是基于 APIFlask / Flask 的后端框架基座。
它只提供应用创建、配置、扩展、模块协议、服务调用、任务运行、迁移集成和基础工具。
它不是业务系统。
系统业务能力不在框架内。
需要系统业务时,业务项目使用独立包 `iTi-System`
## 技术栈
- Python 3.11+
- APIFlask / Flask
- SQLAlchemy / Flask-Migrate
- Flask-JWT-Extended
- Flask-Limiter
- Flask-Caching
- Marshmallow
- httpx
- uv
- Copier
## 安装
框架本地开发:
```bash
uv sync --extra dev
```
业务项目通过 Git tag 依赖框架:
```toml
dependencies = [
"iti-flask @ git+ssh://git@example.com/iTi-Flask.git@v0.1.1",
]
```
可选依赖按需启用:
```bash
uv sync --extra dev --extra mysql --extra image --extra excel
```
## 应用工厂
业务项目使用 `iti.applications.create_app()` 创建 Flask 应用:
```python
from iti.applications import create_app
from config import config
from my_app.models import import_models
from my_app.modules.example.module import ExampleModule
app = create_app(
config_mapping=config,
model_imports=[import_models],
modules=[ExampleModule()],
)
```
`config_mapping` 用于传入业务项目自己的配置类。
`model_imports` 用于让 Alembic 自动发现业务模型。
`modules` 用于注册进程内业务模块。
## 业务项目生成
```bash
uvx copier copy ./copier-template ../my-business-app
```
生成后进入业务项目:
```bash
cd ../my-business-app
uv sync --extra dev
uv run python -m flask --app app.py db upgrade
uv run python -m flask --app app.py run --debug
```
## 文档
- [文档索引](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)