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.
|
|
2 weeks ago | |
|---|---|---|
| .codex/skills | 2 weeks ago | |
| .cursor/rules | 4 months ago | |
| .vscode | 7 months ago | |
| copier-template | 2 weeks ago | |
| docs | 2 weeks ago | |
| iti | 2 weeks ago | |
| migrations | 3 weeks ago | |
| tests | 2 weeks ago | |
| .env.example | 3 weeks ago | |
| .gitignore | 2 weeks ago | |
| LICENSE.txt | 7 months ago | |
| README.md | 2 weeks ago | |
| pyproject.toml | 2 weeks ago | |
README.md
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
安装
框架本地开发:
uv sync --extra dev
业务项目通过 Git tag 依赖框架:
dependencies = [
"iti-flask @ git+ssh://git@example.com/iTi-Flask.git@v0.1.1",
]
可选依赖按需启用:
uv sync --extra dev --extra mysql --extra image --extra excel
应用工厂
业务项目使用 iti.applications.create_app() 创建 Flask 应用:
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 用于注册进程内业务模块。
业务项目生成
uvx copier copy ./copier-template ../my-business-app
生成后进入业务项目:
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