如何在Django Rest Framework中处理50k或以上的对象数组



我遇到了一个问题。我们的要求是我们不能使用分页,所以我们需要在响应中一次所有记录。

我的功能是:

from rest_framework.response import Response
class TestingViewsAPI(APIView):

def get(self, request):
data_list = [{}....................] #50k list of dict
return Response({
"Data": {
"data": data_list,
}
})

当这样做的时候,我的系统挂起了,我该如何处理?我需要专家指导我不使用分页

您正在寻找StreamingHttpResponse:

StreamingHttpResponse类用于将响应从Django流式传输到浏览器。如果生成响应花费太长时间或占用太多内存,则可能需要执行此操作。例如,它对于生成大型CSV文件非常有用。

您应该避免将所有数据放入内存。方法是流式传输所有工作流,从生成(或读取(json到在客户端应用程序上使用它。

最新更新