当前位置: 首页 > news >正文

十二,<FastApi>中间件

什么是中间件?

"中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应之后工作.

代码示例:

from fastapi import FastAPI, Response
from fastapi import Request
import uvicornapp = FastAPI()@app.middleware("http")
async def m2(request: Request, call_next):# 请求代码块print("m2 request")response = await call_next(request)# 响应代码块response.headers['author'] = 'yuan'print("m2 response")return response@app.middleware("http")
async def m1(request: Request, call_next):# 请求代码块print("m1 request")print('IP地址', request.client.host)# if request.client.host in ['127.0.0.1',]:   #对请求做一个黑板名单的处理#     print("##########IP限制")#     return Response(status_code=400)print('user_path', request.url.path)if request.url.path in ["/user"]:  # 权限处理print("##########USER限制")print(Response, type(Response))data = "visit forbidden"return Response(content=data)response = await call_next(request)# 响应代码块print("m1 response")return response@app.get("/user")
async def get_user():print("get user 函数执行")return {"test": "user"}@app.get("/item/{item_id}")
async def get_item(item_id: int):print("item 函数执行")return {"item_id": item_id}if __name__ == '__main__':# 启动uvicorn.run("07test:app", port=8080, reload=True)

相关文章:

  • GCC 使用说明:常用参数详解与最佳实践
  • 66.加1
  • js中显示为[object Object]
  • linux下使用php修改php.ini的session.save_path无效的解决办法
  • 6.(vue3.x+vite)动态挂载组件并传递参数和方法
  • RK3588RK3576实现 HW-ID DTB(动态加载不同的Kernel DTB)功能
  • 使用基数树优化高并发内存池(替代加锁访问的哈希表和红黑树)
  • 通过导入 Excel 的方式复制文件或文件夹
  • 面试题:C++11在C++98基础上增加了哪些内容?
  • ChatUI 3.0 正式发布,“对话式交互” 开源组件库
  • MCP 协议知识分享
  • python scikit-learn中常用的数据集
  • LeetCode算法题(Go语言实现)_50
  • 什么是车规级MCU?STM32也能上车规级场景?
  • 模拟电路需要了解的一些基础知识(部分)
  • Dify部署过程中的错误和解决方案汇总
  • DeepSeek+大数据分析快速应用落地
  • ThinkPHP8可能遇到问题一:save保存时出现验证器的信息
  • Oracle--了解Oracle
  • 批量将不同位置的多个文件夹合并到一个文件夹
  • 毕业设计论文网站/成品网站货源1
  • 微信小程序开发教程书籍/网站搜索引擎优化工具
  • 做网站的价/seo网站培训班
  • 建设银行网站解除绑定/长沙seo代理
  • php 网站版面素材/seo算法培训
  • 网上推广是什么意思/seo外包费用