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

青葱年少 python 498

原文标题How to handle 50k or above array of objects in Django Rest Framework?

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

我的功能是这样的:

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,
                }
        })
        

执行此操作时,我的系统挂起我该如何处理?我需要专家指导我不使用分页

原文链接:https://stackoverflow.com//questions/71599705/how-to-handle-50k-or-above-array-of-objects-in-django-rest-framework

回复

我来回复
  • dani herrera的头像
    dani herrera 评论

    您正在寻找StreamingHttpResponse:

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

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

    2年前 0条评论