跳到正文

FastAPI

中级通用

FastAPI 是用 Python 编写 Web API 的后端框架,负责把请求交给对应代码并返回结果。它通过数据模型校验输入、生成接口文档,减少接口开发中的重复工作,例如为 AI 摘要工具提供提交文本的接口。

你可能会说:「帮我用 Python 做个后端,让网页能提交文章拿到摘要,还能查看接口说明。」

读之前建议先了解

动手看看

缺少文本摘要工具前端漏传字段FastAPI数据模型校验摘要处理函数尚未执行
1

用户点击生成摘要,但前端发出的 JSON 漏掉了 text 字段。先看看后端怎样拦住这种不完整的请求。

要点

  1. 1

    用路由把请求接到函数

    你为路径和 HTTP 方法绑定处理函数,例如让提交文章的请求进入摘要函数。FastAPI 负责接收请求、提取参数和组织响应,真正的摘要逻辑仍由你编写或调用模型完成。

  2. 2

    用数据模型约定输入输出

    你用 Pydantic 模型描述文章正文、摘要长度等字段,FastAPI 据此解析和校验请求。这样缺字段或格式不对时,接口会返回错误;但文章是否属于当前用户,仍需业务代码检查。

  3. 3

    让接口文档跟着代码更新

    FastAPI 能根据路由、参数和数据模型生成接口说明,并提供交互式文档。你和前端同事可以直接查看、试调接口,减少口头对齐;接口是否符合产品需求,仍要靠测试验证。

容易混淆的地方

FastAPI 和 Django 都是 Python 后端框架,但 FastAPI 更聚焦接口开发,Django 则集成了数据库模型、管理后台等功能。FastAPI 也不是运行服务的服务器:实际接收网络连接通常由 Uvicorn 等 ASGI 服务器完成。

什么时候用

适合用

  • 给网站或 App 提供 Python 接口,接收表单并返回查询结果。
  • 把已有的 Python 数据分析或 AI 处理逻辑包装成可调用的服务。
  • 前后端分开开发时,用数据模型和自动生成的文档对齐接口。

不适合用

  • 只做作品展示页,没有服务端逻辑,用静态页面和静态托管就够了。
  • 只在本机批量整理文件,用 Python 脚本即可,无需引入 Web 接口。
  • 要快速搭建以管理后台为主的系统,可优先选自带管理功能的 Django。

练一练

你在做 AI 摘要网站,已有 Python 摘要函数。网页要提交正文,正文缺失时要收到明确错误,前端同事还想直接试调接口。哪种方案最贴合这些需求?

让 AI 帮你做

请用 FastAPI 为现有 Python 摘要函数提供 POST /summaries 接口,用 Pydantic 定义请求和响应模型,拒绝空正文,返回 JSON。保留交互式接口文档,补充成功与非法输入的测试,并说明如何用 Uvicorn 启动。

接下来学什么