fastapi自定义中间件

fastapi自定义中间件

1、自定义中间件类

python 复制代码
from fastapi import Request
from starlette.middleware.base import BaseHTTPMiddleware

class MyMiddleware(BaseHTTPMiddleware):
    def __init__(self, app,*args, **kwargs):
        super().__init__(app,*args, **kwargs)

    async def dispatch(self, request: Request, call_next):
        print("MyMiddleware =============================== ")
        # 接收来自客户端的Request请求;
        headers = dict(request.scope['headers'])
        # 将Request请求传回原路由
        response = await call_next(request)
        return response

2、使用自定义中间件

python 复制代码
app.add_middleware(MyMiddleware)

3、中间件执行顺序,从下往上执行

python 复制代码
app.add_middleware(xx1)
app.add_middleware(xx2)

会先执行xx2再执行xx1

相关推荐
码界索隆23 分钟前
Python转Java系列:前言
java·开发语言·python
金銀銅鐵27 分钟前
用 Tkinter 实现一个罗马数字转整数的简单工具
后端·python
MC皮蛋侠客1 小时前
Ruff 完全指南:下一代 Python Linter 与 Formatter
python
happylifetree2 小时前
Python014-第二章13.数据容器-tuple案例
python
茉莉玫瑰花茶2 小时前
LangGraph 其他核心能力 [ 3 ]
python·ai
AI玫瑰助手2 小时前
Python函数:递归函数的定义与阶乘案例实现
开发语言·python·信息可视化
武子康2 小时前
调查研究-155 Open-LLM-VTuber 本地部署与互动实战指南
人工智能·python·深度学习·ai·数字人
北漂人Java2 小时前
Pycharm配置Miniconda教程
python·pycharm
CTA量化套保3 小时前
量化程序 while True 一直跑 CPU 很高:天勤降频与字段过滤
python·区块链
copyer_xyf3 小时前
Python 内存分析:从栈和堆理解对象引用
前端·后端·python