gpt4 book ai didi

python - FastAPI 异步类依赖项

转载 作者:行者123 更新时间:2023-12-04 08:26:25 26 4
gpt4 key购买 nike

在 FastAPI 中,当标准函数用作依赖项时,它可以声明为常规 def函数或异步 async def功能。 FastAPI 声称它在任何一种情况下都会做正确的事情。
然而,以这种方式创建的依赖项不像类依赖项那样对自动完成友好。类依赖也有一个更好的声明语法,你可以只指定依赖的类型一次,FastAPI 会找出你的意思是哪个依赖。
def read_item(common: CommonQueryParam = Depends()):
但是类依赖需要执行异步操作作为其初始化的一部分。是否可以同时使用类依赖项和异步。显然不能声明类 __init__作为异步函数。有没有其他方法可以使它工作?

最佳答案

正如您所注意到的,__init__必须是同步的,你不能直接调用 await在里面。但是您可以将所有异步代码设为子依赖项,并将其设为 __init__ 的输入。 . FastAPI 将正确处理此异步依赖项。
样本:

async def async_dep():
await asyncio.sleep(0)
return 1


class CommonQueryParams:
def __init__(self, a: int = Depends(async_dep)):
self.a = a

关于python - FastAPI 异步类依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65243587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com