当前位置: 首页 > news >正文

FastAPI的发展历史

参考:https://zhuanlan.zhihu.com/p/710831974

FastAPI 于 2019 年发布,由 Sebastian Ramirez 创建。他是 Pydantic 框架的创建者,也是多个开源项目的贡献者。

FastAPI 的设计初衷是为了解决 Python Web 框架在数据类型验证和文档生成方面的问题。它使用了 Python 类型注解和 Pydantic 模型,并采用 async/await 异步语法来提高性能。

2020 年 6 月,FastAPI 发布了稳定版本 1.0。

FastAPI 具有诸多优势,例如性能快速、基于标准 Python 类型标注、代码量少、编写快速、支持多种数据格式、自动生成 API 文档、具有 Docker 和 Kubernetes 的现成支持、适用于多种访问和安全性实用程序,以及与 Starlette 和 Pydantic 等代码生态系统集成等。

在 FastAPI 之前,已经存在一些相关的框架和工具,这些也为 FastAPI 的发展提供了一定的启发和借鉴,例如:

  • Django:是流行的 Python 框架,与关系数据库结合紧密,用于构建大型系统,其创建目的是在后端生成 HTML,而不是创建现代前端或与其通信的其他系统使用的 API。
  • Django REST framework:用于构建 Web API 以改善 Django 的 API 功能,是第一个自动生成 API 文档的框架,自动生成 API 接口文档这一特性启发了 FastAPI 的诞生。该框架的作者 Tom Christie 也创造了 Starlette 和 Uvicorn,而 FastAPI 正是建立在 Starlette 和 Uvicorn 之上。
  • Flask:是轻量级框架,不包括数据库集成和许多附带功能,其简单性和灵活性允许使用 NoSQL 数据库作为主数据存储,各个模块之前解耦,可通过扩展提供所需功能。Flask 的简单性、成为微框架、拥有简单易用的路由系统等特点给了 FastAPI 启发。
  • Requests:是一个与 API(作为客户端)进行交互的库,具有简单直观的设计、易用性,并具有合理的默认值和强大的可自定义性。FastAPI 从 Requests 中获得启发,拥有了简单直观的 API、直接使用 HTTP 方法名称、具有合理默认值及强大自定义功能等特性。
  • Swagger/OpenAPI:API 文档的标准,FastAPI 采用开放标准而非自定义架构,并集成基于标准的用户界面工具,如 Swagger UI 和 ReDoc。
  • Marshmallow:提供了数据序列化和验证功能,使用代码来定义提供的数据类型和验证的 schema,且验证是自动化的。
  • Webargs:用于解析从前端发送的请求数据,具有对输入请求数据的自动验证功能。
  • APISpec:可作为很多框架的插件,通过在 Python 的文档字符串内部使用 YAML 格式描述为每个函数自动生成文档,并生成 OpenAPI 的 schemas。
http://www.xdnf.cn/news/222607.html

相关文章:

  • 在VMware上创建Ubuntu虚拟机,与Xshell和Xftp的连接和使用
  • 文心一言开发指南08——千帆大模型平台推理服务API
  • 9.idea中创建springboot项目_jdk1.8
  • 无需下载,免费在线AI音乐生成器:爱狐AI详解与使用
  • C# 继承详解
  • LangChain4j +DeepSeek大模型应用开发——5 持久化聊天记忆 Persistence
  • 问题整理篇---(1)keil
  • Linux查看程序端口占用情况
  • Kubernetes in action-Kubernetes的pod
  • 使用Python将YOLO数据集拆分成固定文件数量的小数据集
  • Mixture-of-Experts(MoE)原理与在DeepSeek中的应用
  • HOOPS 2025全面适配Linux ARM64:性能突破、能耗优化与工业3D可视化部署场景全解析!
  • Samba-系统集成
  • 混淆矩阵(Confusion Matrix);归一化混淆矩阵(Confusion Matrix Normalized)
  • Mac配置Maven环境变量避坑
  • 无人机航拍牛羊检测数据集VOC+YOLO格式1021张3类别小目标
  • ROS2 学习
  • c#WebsocketSever
  • 浅析通用文字识别技术在档案管理中的未来发展趋势
  • 4. python3基本数据类型
  • 指针变量存放在哪?
  • 深度学习·经典模型·SwinTransformer
  • ISME|原生生物,顶刊是如何研究的
  • 网工笔记-传输层
  • 插值算法 - 双三次插值(Bicubic Interpolation)
  • 【无标题】四色定理研究团队的构建与实施路径——跨学科建模、编程与理论拓展的全流程方案
  • 实现一个简单回调列表
  • 代理对象的mock
  • 数据库所有知识
  • 随机游走之 个人的简单理解