gpt4 book ai didi

python - 如何在 DRF 中使用基于异步函数的 View ?

转载 作者:行者123 更新时间:2023-12-04 11:32:03 29 4
gpt4 key购买 nike

由于 Django 现在支持异步 View ,我正在尝试将包含许多基于函数的 View 的代码库更改为异步,但由于某种原因它不起作用。

@api_view(["GET"])
async def test_async_view(request):
...
data = await get_data()
return Response(data)
当我向这个端点发送请求时,我收到一条错误消息:

AssertionError: Expected a Response, HttpResponse orHttpStreamingResponse to be returned from the view, but received a<class 'coroutine'>


DRF 还不支持异步 View 吗?有没有其他方法可以让这个工作?

最佳答案

截至目前,DRF 不支持异步“api View ”。这是一个开放的issue (#7260)在 DRF 社区中,它仍处于讨论阶段。
但是,Django 提供了一个装饰器/包装器,它允许我们使用 sync_to_async(...) 将我们的同步 View /函数转换为异步。 wrapper 。
例子,

@sync_to_async
@api_view(["GET"])
def sample_view(request):
data = get_data()
return Response(data)
请注意,这里是 sample_view(...)get_data(...)是同步功能。

关于python - 如何在 DRF 中使用基于异步函数的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65873039/

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