Flask Admin
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.
 
 
 
 
Go to file
NoahLan 9a71aa8c93 refactor: rebuild fastapi framework foundation 2 weeks ago
.codex/skills docs: 文档整理 2 weeks ago
.cursor/rules feat: 修复优化一些逻辑; 自研一个上传算法; 修正gitignore; 切换开发环境为mysql; 4 months ago
.vscode feat: first commit. 7 months ago
copier-template refactor: rebuild fastapi framework foundation 2 weeks ago
docs refactor: rebuild fastapi framework foundation 2 weeks ago
iti refactor: rebuild fastapi framework foundation 2 weeks ago
migrations refactor: rebuild fastapi framework foundation 2 weeks ago
tests refactor: rebuild fastapi framework foundation 2 weeks ago
.env.example refactor: 重构框架项目,轻量微服务+copier+底包仓库依赖方式,而非代码直接进入 3 weeks ago
.gitignore refactor: remove system module and related code 2 weeks ago
LICENSE.txt feat: first commit. 7 months ago
README.md refactor: rebuild fastapi framework foundation 2 weeks ago
pyproject.toml refactor: rebuild fastapi framework foundation 2 weeks ago

README.md

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

安装

框架本地开发:

uv sync --extra dev

业务项目依赖:

dependencies = [
  "iti-flask @ git+ssh://git@your-git/iTi/iTi-Flask.git@v0.1.1",
]

应用工厂

from iti import create_app

from config import config
from my_app.modules.example import ExampleModule

app = create_app(
    config_mapping=config,
    modules=[ExampleModule()],
)

运行:

uv run uvicorn app:app --reload

业务项目生成

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

文档