FastAPI(37)- Middleware 中间件

本文深入探讨了FastAPI的中间件功能,中间件在HTTP请求处理中的作用,包括如何自定义请求和响应处理。通过示例展示了如何创建一个添加处理时间头部的中间件,解释了中间件的执行顺序,以及它与依赖项和后台任务的关系。同时,文章还提供了实际的代码示例来说明中间件在处理请求和响应时如何工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是中间件

  • 就是一个函数,它在被任何特定路径操作处理之前处理每个请求,且在每个 response 返回之前被调用
  • 类似钩子函数
执行顺序
  1. 中间件会接收应用程序中的每个请求 Request
  2. 针对请求 Request 或其他功能,可以自定义代码块
  3. 再将请求 Request 传回路径操作函数,由应用程序的其余部分继续处理该请求
  4. 路径操作函数处理完后,中间件会获取到应用程序生成的响应 Response
  5. 中间件可以针对响应 Response 或其他功能,又可以自定义代码块
  6. 最后返回响应 Response 给客户端
Request

FastAPI 有提供 Request 模块,但其实就是 starlette 里面的 Request

Response

FastAPI 有提供 Response 模块,但其实就是 starlette 里面的 Response

中间件和包含 yield 的依赖项、Background task 的执行顺序
  1. 依赖项 yield 语句前的代码块
  2. 中间件
  3. 依赖项 yield 语句后的代码块
  4. Background task

创建中间件

import time
from fastapi import FastAPI, Reques
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菠萝测试笔记

来支持下测试小锅锅

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值