FastAPI - 基础篇
FastAPI是一个基于Python的高性能Web框架,专为快速构建API接口服务设计。它具有高性能、自动文档生成、类型注解支持和异步处理等特性,适用于构建RESTful API、微服务架构、数据处理API和实时通信场景。通过简单的装饰器语法即可定义路由和处理函数,支持路径参数、查询参数和请求体参数,并能自动处理响应类型和异常。其优势包括Pythonic语法、卓越性能、自动文档生成和丰富的Pyth
1. 什么是FastAPI
1.1 FastAPI 特点
- 高性能: 基于Starlette和Pydantic,利用异步(asynchronous)编程,提供出色的性能。
- 自动文档生成: 自动生成交互式API文档,支持Swagger UI和ReDoc,让API的理解和测试更加直观。
- 类型注解支持: 利用Python的类型提示,提供更严格的输入验证和更好的代码提示。
- 异步支持: 支持异步请求处理,使得处理IO密集型任务更加高效。
1.2 FastAPI 适用场景
- 构建API后端: 用于构建RESTful API,支持前后端分离的Web应用。
- 微服务架构: 可以作为微服务的后端框架,支持快速开发和部署。
- 数据处理API: 适用于处理数据,接收和返回JSON数据。
- 实时通信: 支持WebSocket,适用于实时通信场景。
1.3 为什么选择 FastAPI?
- Pythonic: 使用Python的自然语法和类型提示,降低学习曲线。
- 性能优越: 利用异步编程和底层的Starlette框架,提供卓越的性能。
- 文档友好: 自动生成交互式文档,减少文档维护的工作量。
- 生态系统: 基于Python生态系统,可以方便地集成各种库和工具。
2. 使用 FastAPI 框架搭建 Web 服务

2.1 创建项目

2.2 创建一个main.py文件
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
在命令行中运行以下命令以启动应用:
uvicorn main:app --reload
代码解析:
-
from fastapi import FastAPI: 这行代码从< code>fastapi 模块中导入了FastAPI类。FastAPI类是 FastAPI 框架的核心,用于创建 FastAPI 应用程序实例。 -
app = FastAPI():这行代码创建了一个 FastAPI 应用实例。与 Flask 不同,FastAPI 不需要传递__name__参数,因为它默认使用当前模块。 -
@app.get("/"): 这是一个装饰器,用于告诉 FastAPI 哪个 URL 应该触发下面的函数,并且指定了 HTTP 方法为 GET。在这个例子中,它指定了根 URL(即网站的主页)。 -
def read_root():: 这是定义了一个名为read_root的函数,它将被调用当用户使用 GET 方法访问根 URL 时。 -
return {"Hello": "World"}: 这行代码是read_root函数的返回值。当用户使用 GET 方法访问根 URL 时,这个 JSON 对象将被发送回用户的浏览器或 API 客户端。
2.3 访问项目
打开浏览器并访问 http://127.0.0.1:8000,你应该能够看到 FastAPI 自动生成的交互式文档,并在根路径 ("/") 返回的 JSON 响应。

2.4 路由

2.5 参数分类

2.5.1 路径参数


2.5.2 查询参数


2.5.3 请求体参数



2.6 响应类型

2.6.1 响应HTML格式

2.6.2 响应文件格式

2.6.3 自定义响应数据格式

2.7 异常处理

更多推荐
所有评论(0)