Встречается на собеседованиях • сегодня
Как передать большую таблицу с Backend на Frontend
Для передачи больших таблиц с Backend на Frontend оптимально использовать пагинацию, потоковую передачу или сжатие данных.
1. Пагинация (разбивка на страницы):
python
# Django example
from django.core.paginator import Paginator
def get_data(request):
queryset = MyModel.objects.all()
paginator = Paginator(queryset, 100) # 100 записей на страницу
page = request.GET.get('page', 1)
data = paginator.page(page)
return JsonResponse({'data': list(data.object_list.values())})2. Потоковая передача (Streaming):
python
# FastAPI example
from fastapi import Response
import csv
from io import StringIO
@app.get("/stream-csv")
async def stream_csv():
data = MyModel.objects.all().iterator()
buffer = StringIO()
writer = csv.writer(buffer)
for row in data:
writer.writerow([row.field1, row.field2])
return Response(content=buffer.getvalue(), media_type="text/csv")3. Сжатие (Gzip/JSON):
python
# Flask example
from flask import jsonify, make_response
import gzip
@app.route('/compressed-data')
def compressed_data():
data = get_large_data()
compressed = gzip.compress(jsonify(data).data)
response = make_response(compressed)
response.headers['Content-Encoding'] = 'gzip'
return responseДополнительно:
- Используйте
chunked transfer encodingдля HTTP. - Для очень больших данных рассмотрите WebSockets или Server-Sent Events (SSE).
- Оптимизируйте запросы (
.only(),.defer()в ORM).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы