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

相关推荐
q***235729 分钟前
python的sql解析库-sqlparse
数据库·python·sql
18你磊哥1 小时前
Django WEB 简单项目创建与结构讲解
前端·python·django·sqlite
月殇_木言1 小时前
Python期末复习
开发语言·python
BBB努力学习程序设计3 小时前
Python面向对象编程:从代码搬运工到架构师
python·pycharm
rising start3 小时前
五、python正则表达式
python·正则表达式
BBB努力学习程序设计4 小时前
Python错误处理艺术:从崩溃到优雅恢复的蜕变
python·pycharm
我叫黑大帅4 小时前
什么叫可迭代对象?为什么要用它?
前端·后端·python
Dillon Dong4 小时前
Django + uWSGI 部署至 Ubuntu 完整指南
python·ubuntu·django
k***82514 小时前
python爬虫——爬取全年天气数据并做可视化分析
开发语言·爬虫·python
new_dev4 小时前
Python网络爬虫从入门到实战
爬虫·python·媒体