Как обрабатывать 50k или более массив объектов в Django Rest Framework?
Я столкнулся с проблемой. Наше требование заключается в том, что мы не можем использовать пагинацию, поэтому нам нужны все записи за один раз в Response.
моя функция выглядит так:
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 до его потребления вашим клиентским приложением.
решите этот вопрос таким образом
from django.http import HttpResponse
import pickle
data = pickle.dumps(data_list)
unpickle_data = pickle.loads(data)
data_list = [unpickle_data]
return HttpResponse(data_list)
Я пробую этот способ, мои данные показывают мне в милях секунд