РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
373 of 818 menu

Атрибут status_code

Атрибут status_code класса HttpResponse позволяет управлять HTTP-кодом состояния, который возвращается клиенту. Он доступен для чтения и записи, что дает возможность динамически изменять код ответа в процессе обработки запроса. Атрибут принимает целочисленные значения, соответствующие стандартным HTTP-кодам состояния, таким как 200 (OK), 404 (Not Found), 403 (Forbidden) и другим. При создании объекта HttpResponse вы можете указать код состояния через одноименный параметр в конструкторе. Если код не указан явно, будет использовано значение по умолчанию 200.

Синтаксис

response = HttpResponse(content="Текст ответа", status_code=200) # Получение текущего кода состояния code = response.status_code # Установка нового кода состояния response.status_code = 404

Пример

Давайте создадим ответ с кодом состояния 201 (Created), который обычно используется при успешном создании ресурса:

from django.http import HttpResponse def create_article(request): # Создание статьи (логика опущена) response = HttpResponse("Article created successfully", status_code=201) return response

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

"Article created successfully"

Пример

Давайте изменим код состояния существующего объекта ответа в зависимости от условий:

from django.http import HttpResponse def get_article(request, article_id): # Проверка наличия статьи article = get_article_from_db(article_id) if article: response = HttpResponse("Article found") response.status_code = 200 else: response = HttpResponse("Article not found") response.status_code = 404 return response

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

"Article found"

Пример

Давайте используем атрибут status_code для обработки ошибок при доступе к ресурсу:

from django.http import HttpResponse def check_access(request): user = request.user if not user.is_authenticated: response = HttpResponse("Unauthorized access") response.status_code = 401 elif not user.is_active: response = HttpResponse("Account is inactive") response.status_code = 403 else: response = HttpResponse("Welcome to the resource") response.status_code = 200 return response

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

"Welcome to the resource"

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

  • атрибут content,
    который используется для получения или установки тела ответа
  • класс HttpResponseRedirect,
    который возвращает ответ с кодом 302 и выполняет перенаправление
  • класс HttpResponseNotFound,
    который возвращает ответ с кодом состояния 404
  • класс HttpResponsePermanentRedirect,
    который возвращает ответ с кодом 301 и выполняет постоянное перенаправление
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить