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

补充Depends 和 request: Request 依赖注入用法的注意事项

不要在非路由函数(如类的 __init__ 方法或普通模块函数)中直接使用 Depends()request
Dependsrequest: Request 是 FastAPI 提供的依赖注入机制的一部分,仅适用于FastAPI 路由函数由 FastAPI 调用的依赖函数中。在类初始化、模块级代码、启动事件等 FastAPI 注入上下文之外使用,会导致错误或行为异常。


📌 补充解释:

场景是否能使用 Depends()request: Request说明
路由函数中✅ 可以FastAPI 自动注入
依赖函数中✅ 可以由 FastAPI 调用,注入上下文有效
__init__ 构造函数中❌ 不可以FastAPI 不会注入 Depends,对象不会自动创建
模块全局作用域❌ 不可以不在请求上下文中,request 不存在
startup / shutdown 事件中❌ 不可以使用 request / Depends应直接用 app.state 或显式传参

✅ 正确示例

# 路由函数中
from fastapi import Request, Depends@app.get("/info")
def get_info(request: Request, config: Config = Depends(get_config)):return {"url": config.LLM_MODEL_URL}

❌ 错误示例(类中使用 Depends)

# 错误:FastAPI 不会自动创建此类,也不会注入 config
class MyService:def __init__(self, config: Config = Depends(get_config)):self.config = config

如需在类中使用配置,应该显式传入 config,例如:

class MyService:def __init__(self, config: Config):self.config = config

http://www.xdnf.cn/news/569233.html

相关文章:

  • 【C++ Primer 学习札记】智能指针
  • 构建 PyMNN
  • Halcon窗口的基本操作
  • Elasticsearch生产环境性能调优指南
  • Spring Boot + +小程序, 快速开发零工市场小程序
  • 如何使用 Docker Compose 部署 Immich
  • 《棒球百科知识》世界棒球十强国家是如何发展·棒球1号位
  • WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)
  • 实验分享|基于千眼狼sCMOS科学相机的流式细胞仪细胞核成像实验
  • XCOSnTh-fatfsShell
  • 腾讯位置服务地点搜索开发指南
  • [Min-Max Normalization] [Z-Score Normalization]
  • 使用vue2做一个生成二维码的案例【可当组件使用】
  • JC/T 2848-2024 玻璃纤维增强石膏(GRG)装饰制品检测
  • VS2022:使用命令行启动项目
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家
  • vscode连接WSL卡住
  • js不同浏览器标签页、窗口或 iframe 之间可以相互通信
  • 虚拟机下的OpenWrt磁盘Overlay扩容
  • genicamtl_lmi_gocator_objectmodel3d
  • 掌握HTTPX:从基础到高并发工程实践
  • 自由开发者计划 001:创建一个用于查看 Jupyter Notebook 的谷歌浏览器插件
  • FPGA降低功耗研究
  • 【76. 最小覆盖子串】
  • 操作系统 第四章 -2
  • Docker安装MinIO对象存储中间件
  • 图片识别(TransFormerCNNMLP)
  • 分享一些多模态文档解析思路
  • 蓝桥杯3503 更小的数
  • polarctf-web-[某函数的复仇]