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

Атрибут GET

Атрибут GET класса HttpRequest предоставляет доступ к параметрам, переданным через URL-строку запроса. Данный атрибут является объектом типа QueryDict, который ведет себя как словарь, но с возможностью хранения нескольких значений для одного ключа. GET-параметры обычно используются для фильтрации, сортировки или передачи небольших объемов данных между страницами.

Синтаксис

request.GET.get(key, default=None) request.GET.getlist(key, default=None) request.GET.items() request.GET.keys() request.GET.values()

Для получения значения параметра используется метод get, который принимает ключ и опционально значение по умолчанию. Если параметр может иметь несколько значений, применяется метод getlist.

Пример . Получение одного параметра

Рассмотрим пример получения параметра 'page' из GET-запроса:

from django.http import HttpResponse def my_view(request): page = request.GET.get('page', 1) return HttpResponse(f"Current page: {page}")

Результат выполнения кода при запросе к URL '/my-view/?page=5':

"Current page: 5"

Пример . Получение нескольких значений

В некоторых случаях GET-параметр может передаваться несколько раз. Для получения всех значений используется метод getlist:

from django.http import HttpResponse def my_view(request): categories = request.GET.getlist('category') if categories: return HttpResponse(f"Selected categories: {', '.join(categories)}") else: return HttpResponse("No categories selected")

Результат выполнения кода при запросе '/my-view/?category=books&category=movies':

"Selected categories: books, movies"

Пример . Работа со словарем GET-параметров

Атрибут GET поддерживает стандартные методы словарей, что позволяет перебирать все переданные параметры:

from django.http import HttpResponse def my_view(request): res = [] for key, value in request.GET.items(): res.append(f"{key}: {value}") return HttpResponse("<br>".join(res))

Результат выполнения кода при запросе '/my-view/?q=python&sort=asc':

"q: python" "sort: asc"

Пример . Использование в фильтрации данных

GET-параметры часто применяются для фильтрации записей в базе данных. Рассмотрим пример фильтрации по параметру 'status':

from django.http import HttpResponse from myapp.models import Article def article_list(request): status = request.GET.get('status') articles = Article.objects.all() if status: articles = articles.filter(status=status) res = [article.title for article in articles] return HttpResponse(f"Articles: {res}")

Результат выполнения кода при запросе '/articles/?status=published':

"Articles: ['First article', 'Second article']"

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

  • атрибут POST,
    который содержит данные, переданные методом POST
  • атрибут method,
    который определяет HTTP-метод запроса
  • декоратор require_GET,
    который ограничивает доступ только для GET-запросов
  • класс QueryDict,
    который описывает объект для работы с параметрами запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить