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

相关推荐
无妄无望1 分钟前
ragflow代码学习切片方式(1)docling_parser.py
人工智能·python·学习
醒过来摸鱼6 分钟前
9.12 sinc插值
python·线性代数·算法·numpy
小兔崽子去哪了28 分钟前
Numpy、Panads
python·numpy·pandas
dagouaofei41 分钟前
开题报告自动做PPT
python·powerpoint
Hello 0 12 小时前
视频号直播视频录制
python·音视频·流媒体·直播视频录制
FreeCode2 小时前
LangSmith本地部署LangGraph应用
python·langchain·agent
mit6.8242 小时前
py期中实验选题:实现天气预测
python·算法
Rolei_zl3 小时前
AIGC(生成式AI)试用 41 -- 程序(Python + OCR)-3
python·aigc
eybk3 小时前
使用Beeware开发文件浏览器获取Android15的文件权限
python