Класс HttpResponse

Класс HttpResponse применяется для создания HTTP-ответов, которые возвращаются клиенту из представлений. Он принимает содержимое ответа, статус-код и заголовки. Класс автоматически формирует HTTP-ответ, который браузер может обработать. Содержимое может быть строкой, байтами или итератором.

Синтаксис

pythonHttpResponse(content='', status=200, headers=None, content_type='text/html', charset=None)

Параметры конструктора:

Пример

Давайте создадим простой HTTP-ответ с текстовым содержимым:

pythonfrom django.http import HttpResponse

def hello_view(request):
  res = HttpResponse("Hello, World!")
  return res

Результат выполнения кода:

python"HTTP/1.1 200 OK"
"Content-Type: text/html; charset=utf-8"
"Hello, World!"

Пример

Создадим ответ с пользовательским статусом и заголовками:

pythonfrom django.http import HttpResponse

def api_view(request):
  res = HttpResponse(
    '{"status": "success"}',
    status=201,
    headers={'X-Custom-Header': 'MyValue'},
    content_type='application/json'
  )
  return res

Результат выполнения кода:

python"HTTP/1.1 201 Created"
"Content-Type: application/json; charset=utf-8"
"X-Custom-Header: MyValue"
"{\"status\": \"success\"}"

Пример

Используем атрибут status_code для изменения статуса:

pythonfrom django.http import HttpResponse
from datetime import datetime

def not_found_view(request):
  res = HttpResponse("Page not found")
  res.status_code = 404
  return res

Результат выполнения кода:

python"HTTP/1.1 404 Not Found"
"Content-Type: text/html; charset=utf-8"
"Page not found"

Пример

Отправим файл с использованием HttpResponse:

pythonfrom django.http import HttpResponse

def download_view(request):
  file_content = "This is a file content"
  res = HttpResponse(file_content, content_type='text/plain')
  res['Content-Disposition'] = 'attachment; filename="example.txt"'
  return res

Результат выполнения кода:

python"HTTP/1.1 200 OK"
"Content-Type: text/plain; charset=utf-8"
"Content-Disposition: attachment; filename=\"example.txt\""
"This is a file content"

Смотрите также

  • класс JsonResponse,
    который возвращает JSON-ответы
  • класс FileResponse,
    который возвращает файлы в качестве ответа
  • класс HttpResponseRedirect,
    который выполняет перенаправление
  • класс HttpResponseNotFound,
    который возвращает ответ со статусом 404