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.
1.9 KiB
1.9 KiB
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