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

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

文档