Класс HttpResponse
Класс HttpResponse применяется для создания HTTP-ответов,
которые возвращаются клиенту из представлений. Он принимает
содержимое ответа, статус-код и заголовки. Класс автоматически
формирует HTTP-ответ, который браузер может обработать.
Содержимое может быть строкой, байтами или итератором.
Синтаксис
HttpResponse(content='', status=200, headers=None, content_type='text/html', charset=None)
Параметры конструктора:
-
content- содержимое ответа (строка или байты) -
status- HTTP статус-код (по умолчанию 200) -
headers- дополнительные заголовки (словарь) -
content_type- MIME тип содержимого (по умолчанию 'text/html') -
charset- кодировка содержимого
Пример
Давайте создадим простой HTTP-ответ с текстовым содержимым:
from django.http import HttpResponse
def hello_view(request):
res = HttpResponse("Hello, World!")
return res
Результат выполнения кода:
"HTTP/1.1 200 OK"
"Content-Type: text/html; charset=utf-8"
"Hello, World!"
Пример
Создадим ответ с пользовательским статусом и заголовками:
from 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
Результат выполнения кода:
"HTTP/1.1 201 Created"
"Content-Type: application/json; charset=utf-8"
"X-Custom-Header: MyValue"
"{\"status\": \"success\"}"
Пример
Используем атрибут status_code для изменения статуса:
from django.http import HttpResponse
from datetime import datetime
def not_found_view(request):
res = HttpResponse("Page not found")
res.status_code = 404
return res
Результат выполнения кода:
"HTTP/1.1 404 Not Found"
"Content-Type: text/html; charset=utf-8"
"Page not found"
Пример
Отправим файл с использованием HttpResponse:
from 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
Результат выполнения кода:
"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