Python Web 框架 FastAPI 简介

文章目录

    • 什么是 FastAPI?
      • FastAPI的特点
    • FastAPI 的安装和设置
      • 创建一个简单的 API
      • FastAPI的优势
      • 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前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

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


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

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

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

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!

三、最新Python学习笔记

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

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

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

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板

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

若有侵权,请联系删除

你可能感兴趣的:(python,前端,fastapi)