В Django Response представляет собой объект, который используется для отправки HTTP-ответов от сервера к клиенту. Response позволяет разработчикам контролировать различные аспекты ответа, такие как код состояния, заголовки и тело ответа.
Создание и отправка ответа в Django обычно выполняется с помощью функции HttpResponse или класса JsonResponse.
Класс HttpResponse представляет собой простой текстовый ответ, который может содержать как простой текст, так и HTML-код. Код статуса ответа указывается в параметре status при создании объекта HttpResponse. Например, для создания ответа со статусом "200 OK" вы можете выполнить следующий код:
from django.http import HttpResponse def my_view(request): response = HttpResponse("Hello, World!", status=200) return response
Класс JsonResponse, как следует из названия, предназначен для отправки JSON-ответов. Он автоматически сериализует переданный ему объект в JSON-формат и устанавливает правильные заголовки Content-Type. Код состояния ответа устанавливается по умолчанию в 200, но может быть изменен с помощью параметра status. Например:
from django.http import JsonResponse def my_view(request): data = { 'message': 'Hello, World!' } return JsonResponse(data, status=200)
Кроме установки кода состояния ответа, можно также установить дополнительные заголовки с помощью метода HttpResponse.set_header(). Например, чтобы установить заголовок Content-Type как "application/json", вы можете выполнить следующий код:
response = HttpResponse("Hello, World!") response['Content-Type'] = 'application/json'
Также можно установить куку (cookie) с помощью метода HttpResponse.set_cookie(). Например, чтобы установить куку с именем "username" и значением "john", вы можете выполнить следующий код:
response = HttpResponse("Hello, World!") response.set_cookie('username', 'john')
Ответы также можно настраивать с помощью различных методов и атрибутов объекта response, таких как response.content, response.status_code, response.headers и других. Более подробную информацию обо всех возможностях Response в Django вы можете найти в документации по Django.