Встречается на собеседованиях • сегодня
Как создать ленту для социальной сети
Для создания ленты в соцсети можно использовать пагинацию и кеширование. Вот пример на Django с DRF:
python
from django.core.paginator import Paginator
from rest_framework.response import Response
from rest_framework.decorators import api_view
@api_view(['GET'])
def feed(request):
page = request.GET.get('page', 1)
per_page = 20
# Получаем посты (например, от друзей или подписок)
posts = Post.objects.filter(
user__in=request.user.following.all()
).order_by('-created_at')
paginator = Paginator(posts, per_page)
page_obj = paginator.get_page(page)
serializer = PostSerializer(page_obj.object_list, many=True)
return Response({
'posts': serializer.data,
'has_next': page_obj.has_next()
})Ключевые моменты:
- Используйте пагинацию для разбивки на страницы
- Фильтруйте посты по релевантности (подписки, друзья)
- Сортируйте по дате (новые сначала)
- Возвращайте флаг has_next для бесконечной ленты
- Для оптимизации можно добавить кеширование (Redis) и предварительную загрузку
Для больших нагрузок рассмотрите подходы:
- Курсорная пагинация вместо page-based
- Чанкованная загрузка контента
- Оптимизированные запросы с select_related/prefetch_related

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