Python Web 框架 FastAPI 简介

开发人员一直在寻找能够快速有效地构建复杂 API 和在线应用程序的技术。FastAPI 是Python Web 框架领域的一个相对较新的补充,由于其速度、简单性和开发人员友好的特性而迅速受到关注。在本文中,我们将介绍 FastAPI,并解释为什么它已成为开发 Web 应用程序和 API 的流行替代方案。

什么是 FastAPI?

FastAPI 是一个现代 Web 框架,速度相对较快,用于基于标准 Python 类型提示使用 Python 3.7+ 构建 API。FastAPI还帮助我们自动为我们的Web服务生成文档,以便其他开发人员可以快速了解如何使用它。本文档简化了 Web 服务的测试,以了解它需要哪些数据以及它提供什么。FastAPI 具有许多功能,例如它可以显着提高开发速度,还可以减少代码中的人为错误。它很容易学习并且完全可以用于生产。FastAPI 与众所周知的 API 标准(即OpenAPI 和JSON schema)完全兼容。

FastAPI的特点

  • 自动文档: FastAPI 使用 OpenAPI 标准自动生成交互式 API 文档。可以通过访问应用程序中的特定端点来访问此文档,这使得理解和测试 API 变得非常容易,而无需手动编写大量文档。
  • Python 类型提示:FastAPI 的突出功能之一是它使用 Python 类型提示。通过使用类型提示注释函数参数和返回类型,不仅可以提高代码可读性,还可以使 FastAPI 自动验证传入数据并生成准确的 API 文档。此功能使我们的代码不易出错并且更加自我记录。
  • 数据验证: FastAPI 使用 Pydantic 模型进行数据验证。可以使用 Pydantic 的架构和验证功能定义数据模型。这可确保传入数据自动验证、序列化和反序列化,从而降低在应用程序中处理无效数据的风险。
  • 异步支持:随着Python异步编程的兴起,FastAPI完全拥抱异步操作。可以使用Python的async和await关键字来编写异步端点,使其非常适合处理I/O密集型任务并提高应用程序的整体响应能力。
  • 依赖注入: FastAPI 支持依赖注入,允许声明端点的依赖关系。这有助于保持代码模块化、可测试和可维护。我们可以将数据库连接、身份验证等依赖项无缝地注入到的路由中。
  • 安全功能: FastAPI 包含各种开箱即用的安全功能,例如对 OAuth2、JWT(JSON Web 令牌)的支持以及请求数据的自动验证,以防止 SQL 注入和跨站点脚本 (XSS) 攻击等常见安全漏洞。

FastAPI 的安装和设置

要开始使用 FastAPI,我们需要安装 Python,如果没有则安装 Python3。然后,我们需要使用以下命令安装快速API

pip install fastapi

还需要安装 uvicorn

pip install uvicorn

创建一个简单的 API

在这里,我们正在创建一个简单的 Web 服务,当您访问特定的网址时,它会说“Hello”。使用 FastAPI,您只需几行代码即可完成此操作,要运行此代码,您可以将其保存在 Python 文件中,这里我们将文件保存为 main.py。

from fastapi import FastAPI

# 创建FastAPI应用程序
app = FastAPI()

# 在根网址("/")定义路由
@app.get("/")
def read_root():
	return {"message": "Hello, FastAPI!"}

现在,在终端中执行以下命令:

uvicorn main:app --reload

应用程序运行后,打开网络浏览器并导航至

http://localhost:8000/

如果您使用的是curl 或Postman 等API 测试工具,您应该会在浏览器或响应中看到一条消息。

{"message": "Hello, FastAPI!"}

FastAPI的优势

以下是使用 FastAPI 的简单优点:

  • 易于学习和使用: FastAPI 的设计简单明了,特别是对于 Python 开发人员而言。其简单直观的语法以及自动文档生成使其易于入门和维护。
  • 高性能: FastAPI 专为提高速度而构建。由于其异步支持和高效的数据处理,它是可用的最快的 Python Web 框架之一。这意味着您的 Web 应用程序可以处理大量请求而不会减慢速度。
  • 自动数据验证:借助 FastAPI,您可以使用 Python 类型提示来定义 API 请求和响应所需的数据结构。FastAPI自动验证数据,减少由于错误输入而导致错误的机会。
  • 身份验证和授权:它提供了处理身份验证和授权的简单方法,无论是使用 OAuth2、JWT 令牌还是自定义方法。
  • 中间件:我们可以轻松地将中间件添加到您的 FastAPI 应用程序中,以执行日志记录、身份验证或请求/响应修改等任务。

FastAPI 的缺点

以下是使用 FastAPI 的一些潜在缺点:

  • 学习曲线:虽然 FastAPI 被设计为对开发人员友好,但对于那些刚接触异步编程或一般 Web 框架的人来说,它可能仍然有一个学习曲线。没有 Python 经验的开发人员可能也需要先学习 Python。
  • 社区和文档:尽管 FastAPI 的社区正在迅速发展,但它可能没有像其他框架那样广泛的支持网络或文档。您可能会遇到更少的教程、指南和社区贡献的软件包。
---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值