在5分钟或更短时间内解释FastAPI

FastAPI,一个允许你开发Web API的Python框架,在过去几年中变得非常流行。

API(应用程序接口)是现代架构的基础。它们允许应用程序进行模块化和解耦。这使得你能够快速创建应用程序,并且易于维护。

因此,如果你计划使用Python开发Web应用程序,学习FastAPI是一个很好的选择。本文将教你所有关于FastAPI基础知识的内容。

FastAPI是什么?

FastAPI是一个基于Python的Web框架。它在最近几年引起了很多关注。它的开发结构类似于Flask,Flask是那些想学习Python Web开发的人最流行的选择。

FastAPI使用简单,其代码清晰易懂。FastAPI被微软、Netflix和Uber等科技巨头使用。

FastAPI具备所有你期望从一个API构建工具中看到的特性,但并不局限于此。你可以使用它来挂载后向WSGI,这是大多数用户并不了解的。

FastAPI的主要目的是构建API,正如其名字所示。这可以通过返回JSON数据或使用OpenAPI的交互式Swagger UI来高效完成。

FastAPI不仅限于API。它可以用于几乎所有Web框架所能做的事情,从使用Jinja2模板引擎传送网页到提供WebSocket支持的应用程序。

以下是FastAPI的优点:

  • FastAPI允许你验证开发者的数据类型,即使在使用嵌套JSON查询时也可以。
  • 它提供自动完成功能,可以让你更短的时间内创建应用程序,减少努力。
  • 它与OpenAPI和JSON Schema词汇兼容,可以验证和注释JSON文档。
  • FastAPI允许你使用名为graphene-python的库快速构建GraphQL API。
  • FastAPI与OAuth 2.0以及外部提供者兼容。

以下是FastAPI的缺点:

  • FastAPI仍然是一个新的框架,因此缺乏指南社区。它没有足够的外部教育信息,例如书籍、课程或教程。
  • 因为在FastAPI中我们必须将所有组件绑定在一起,所以主文件可能会变得非常庞大或拥挤。

FastAPI的独特特性

这些是使FastAPI成为迄今最受欢迎的Python Web框架的独特特性。

  • 高性能:FastAPI比其他框架更具性能。FastAPI的面向速度的框架使其成为首选。通过利用Starlette的特性、创建API并生成现成的代码,一切归结为更快的速度和更好的性能。
  • 快速编码:开发人员不需要创建任何新的生产就绪代码。这将加快大约200%到300%的进程。FastAPI运行在Starlette上,并且有许多其他特性可用于构建用于数据验证和序列化的API。该框架已经准备好了所有必要的组件,减少了编码所需的时间。
  • 最小的错误:该框架具有自动完成功能,自动将大部分代码插入到代码块中。这减少了错误的可能性,提高了输出质量。
  • 易于理解:FastAPI除了现代Python没有做任何其他事情。它是Python 3.6的修改版本,不包含任何新的语法。任何熟悉该语言的人都可以使用该框架。
  • 最小的努力:FastAPI可以在开发者的最小努力下自动生成OpenAPI文档。这些信息可以在应用程序的/doc目录下找到。文档包含了关于API端点、返回代码、响应参数和其他详细信息。
  • 编辑器支持:框架的所有组件都考虑了自动完成。它简单易用,使开发者能够产生就绪的代码。您还可以使用交互式文档直接在浏览器中测试代码。
  • 开放标准:FastAPI的Python web框架是一个巨大的优势。该框架与OpenAPI(以前称为Swagger)兼容,允许创建API。

FastAPI安装

以下是在Linux或Windows上安装FastAPI的简单步骤。

#1. 在Linux上安装FastAPI

使用以下命令在Linux上安装Python 3:

sudo apt install python3

使用以下命令在Linux上安装pip:

sudo apt install python3-pip

接下来,安装FastAPI。

pip install fastapi

您还需要一个ASGI服务器。因此,使用pip安装uvicorn。

pip install "uvicorn[standard]"

#2. 在Windows上安装FastAPI

使用Microsoft商店在Windows上安装Python 3。这也会安装pip。

接下来,在Windows上安装FastAPI。

pip install fastapi

最后,安装ASGI服务器uvicorn。

pip install "uvicorn[standard]"

FastAPI的新时代用途

以下是一些FastAPI的新时代用途:

自动化文档

API类型和端点的文档是必不可少的。您可以使用OpenAPI、Swagger UI和ReDoc来解决这个问题。这些都是FastAPI自动打包的。这使您可以专注于代码而不是设置工具。

类型化Python

FastAPI使用Python 3.6类型声明(多亏了Pydantic)。这意味着它使用了一种Python功能,允许您指定变量的类型和类型。该框架对此利用得很好,为您提供了出色的编辑器支持。自动完成效果很好。

验证

Pydantic已将验证集成到该框架中。可以对标准Python类型和自定义字段进行验证。

安全性和身份验证

这是任何API的重要部分。我们经常只是重复代码,那么为什么不将其中一部分纳入我们的框架中呢?FastAPI正是这样做的。

该库支持HTTP Basic、OAuth2令牌(JWT令牌)和header API密钥。

异步性

FastAPI默认支持异步端点,使您的代码更简单、更高效。这是与Flask相比的一个重要优势。

FastAPI与Flask的关键区别

使用差异

FastAPI是一个提供构建API所需的一切的全栈平台。而Flask是一个微框架,不能提供与FastAPI相同的所有功能。如果您需要快速原型验证一个想法或创建一个简单的Web应用程序,Flask可能会很有用。

Flask and FastAPI是在使用方式上非常不同的。Flask框架可用于原型验证新想法和应用程序,而FastAPI框架可用于构建API。您可以快速构建一个后端服务器,而无需任何编码知识。

小规模网站和Web应用程序

FastAPI是一个简单易用、轻量级的框架,可用于小规模的Web和应用程序开发。它包含一个对象关系映射(ORM)层,用于处理应用程序中的数据对象,因此您可以通过编码快速访问它们。

ORM层会跟踪您的数据库,并允许您在网站或应用程序中添加、修改或删除新信息时忘记手动更新它们。

WSGI vs. ASGI

您可能已经注意到一个基本的区别:Flask使用WSGI作为其标准接口,而FastAPI使用ASGI。如前所述,WSGI以同步方式处理请求。请求按顺序处理。一项任务在上一个任务完成之前无法启动。

ASGI以异步方式处理请求。这使得任务可以按照自己的节奏完成,并且不需要等待其他任务。

社区

另一个区别是社区。Flask的社区存在时间比FastAPI长。这意味着有很好的文档和其他写有关Flask的帮助。

FastAPI仍然是一个新项目,所以社区还没有完全发展起来。这意味着虽然有足够的文档,但没有太多的外部帮助。

下面是FastAPI与Flask的摘要表格:

FastAPI Flask
内置数据验证 没有数据验证
支持异步任务 不支持异步任务
实现ASGI规范 支持WSGI应用程序
自动文档支持 手动文档支持
错误消息以JSON格式显示 错误消息显示在HTML页面上
较小的社区支持 丰富的社区支持

FastAPI还是Flask:你应该选择哪个?

FastAPI和Flask都可以快速设置链接_7和数据科学应用程序。两者在部署方面都需要相同的努力,但哪个框架最适合您的下一个项目呢?

当速度和性能最重要时,FastAPI是最佳选择。如果您正在构建CDN并预计有大量流量,那么这个框架是最好的选择。FastAPI允许您下载框架并立即使用。项目模板将节省您的时间并帮助您节省时间。

在构建API时,FastAPI比Flask更好的选择。特别是在考虑到微服务和其他因素时。如果您已经在这个框架周围构建了很多工具,那么Flask是最好的选择。

结论

所以,这就是关于FastAPI的全部内容。FastAPI提供了卓越的速度和性能。如果您正在构建内容传送网络并期望有流量,那么这个框架是最好的选择。FastAPI创新的框架和项目模板将帮助您节省时间。

对于创建API,特别是微服务,Flask可能更好。FastAPI也比Flask更好。如果您已经广泛使用Flask,那么Flask是更好的选择。

您还可以探索一些流行的链接_8来构建API。

类似文章