首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >FastAPI学习笔记

FastAPI学习笔记

原创
作者头像
光影zero
修改2025-02-03 23:06:45
修改2025-02-03 23:06:45
8570
举报

腾讯技术创作特训营S11#重启人生

导论

FastAPI是一个现代、快速(高性能)、用于构建APIs的Web框架,基于Python 3.6+构建,并使用了Python的类型提示(type hints)来验证数据、转换数据以及生成JSON Schema和OpenAPI文档。由于其出色的性能和易用性,FastAPI在近年来逐渐受到了开发者的青睐。(学习该框架强烈建议有python基础)

一、安装FastAPI

在安装FastAPI之前:

  • 请先前往从 Python 官方网站 下载适合您操作系统的 Python 版本。
  • 安装 Python。建议安装 Python 3.6 或更高版本,因为 FastAPI 对 Python 版本有一定要求。

安装 FastAPI

  • 使用下面的命令安装FastAPI
代码语言:javascript
复制
pip install fastapi

(FastAPI 依赖于 Starlette 和 Uvicorn。pip 会自动安装这些依赖项,但在某些情况下,可能需要手动更新它们。)

  • 如果需要手动安装 Starlette 和 Uvicorn,可以分别使用以下命令:
代码语言:txt
复制
pip install starlettepip install uvicorn
  • 如果想一次性安装 FastAPI 及其所有插件,可以使用以下命令:
代码语言:txt
复制
pip install fastapi[all]
  • 如果想安装带有标准支持的 Uvicorn,可以使用以下命令:
代码语言:txt
复制
pip install "uvicorn[standard]"

二、创建第一个 FastAPI 应用

  • 创建项目文件

在你的项目目录中,创建一个名为 main.py 的文件。

  • 编写基本应用

main.py 中,编写以下代码:

代码语言:python
复制
from fastapi import FastAPI
 
app = FastAPI()
 
@app.get("/")
async def root():
    return {"message": "Hello, FastAPI!"}
  • 运行应用

在命令行中,导航到包含 main.py 的目录,并运行以下命令:

代码语言:txt
复制
uvicorn main:app --reload

--reload选项使得在代码更改时服务器会自动重新加载。

  • 访问应用

打开浏览器,访问 http://127.0.0.1:8000/,你应该会看到 {"message": "Hello, FastAPI!"} 的输出。

四、交互式APi文档

FastAPI 提供了两种自带的 API 文档界面,分别是:

1.Swagger UI

  • 访问路径:默认情况下,可以通过访问 http://127.0.0.1:8000/docs 来查看 Swagger UI 风格的文档。
  • 特点:Swagger UI 提供了一个直观的用户界面,用于浏览 API 的各个端点。开发者可以查看每个路由操作的输入参数、输出格式和请求示例。Swagger UI 还支持直接在文档中进行 API 请求测试,方便开发者快速验证 API 的正确性。

2.ReDoc

  • 访问路径:默认情况下,可以通过访问 http://127.0.0.1:8000/redoc 来查看 ReDoc 风格的文档。
  • 特点:ReDoc 是另一种交互式文档界面,具有清晰简洁的外观。它使得开发者能够以可读性强的方式查看 API 的描述、请求和响应。与 Swagger UI 不同,ReDoc 的设计强调文档的可视化和用户体验。

五、FastAPI 框架的优劣势

优势

  1. 高性能:FastAPI 基于 Starlette,性能接近 Node.js 和 Go,是最快的 Python Web 框架之一。
  2. 异步支持:原生支持 Python 的异步功能(async/await),能够高效处理并发请求。
  3. 类型提示:利用 Python 的类型提示功能,使代码更加规范、可读,并通过类型检查工具提高代码质量。
  4. 自动生成文档:内置 Swagger UI 和 ReDoc 两种风格的交互式 API 文档,方便开发者测试和调试。
  5. 数据验证:借助 Pydantic 提供强大的数据验证功能,自动验证请求数据的格式和类型。
  6. 依赖注入:支持依赖注入系统,使处理请求的逻辑更加模块化和可维护。
  7. 安全性:内置许多安全功能,支持 OAuth2 和 JWT,方便实现用户身份验证和授权。

劣势

  1. 学习曲线:对于初学者来说,可能需要一些时间来熟悉异步编程和类型提示等概念。
  2. 生态相对新兴:虽然 FastAPI 的生态正在快速发展,但相对于一些成熟的框架,如 Django 和 Flask,其社区和第三方库可能还不够丰富。

六、结语

FastAPI 作为一个现代、高性能的 Web 框架,以其独特的优势在 Python 开发社区中崭露头角。它不仅提供了高效处理并发请求的能力,还通过类型提示和自动生成文档等功能,极大地提高了开发效率和代码质量。尽管 FastAPI 的学习曲线可能相对陡峭,但对于追求高性能和可维护性的开发者来说,它是一个值得掌握的强大工具。随着其生态的不断完善,FastAPI 有望在未来成为更多开发者的首选框架。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导论
  • 一、安装FastAPI
    • 在安装FastAPI之前:
    • 安装 FastAPI:
  • 二、创建第一个 FastAPI 应用
  • 四、交互式APi文档
  • 五、FastAPI 框架的优劣势
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档