Depends 描述

在 FastAPI 中,Depends 是一个用于处理依赖关系的工具。

Depends允许开发者定义一个可复用函数,此函数作为参数传递给路由处理函数。

from fastapi import Depends

@user_router.post("/test")
def test_api(
    data: UserTestSchema,
    db: Session = Depends(get_db)
):

....

上述代码中get_db作为复用函数,用来或获取数据库连接(该函数由开发者实现)

Session 参数通过Denpends注入函数`get_db`的返回值。

test_api使用Session参数,而不用直接获取连接。

Denpends 作用

  • 参数注入: Depends 可以用于将一个或多个依赖项注入到路由处理函数中。这些依赖项的返回值将成为路由处理函数的参数,使得开发者可以在函数内部使用这些值。
  • 依赖项注入: 开发者可以通过 Depends 在路由处理函数中注入任何函数,甚至是异步函数。这些函数可以执行各种任务,例如验证用户身份、获取数据库连接等。
  • 代码结构: 使用 Depends 可以使代码更具结构和可读性。开发者可以将一些通用的功能封装成依赖项,并在多个路由中重复使用,从而避免代码的重复编写。
  • 依赖项自动注入: FastAPI 在运行时会自动解析依赖项的类型,并注入相应的值。这使得在路由处理函数中使用依赖项时非常方便,开发者无需手动进行注入。