Sobes.tech
Назад к вопросам
Junior — Middle
65

Каким образом можно включить параметры данных в URL-запрос с использованием метода GET?

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Параметры для GET-запроса передаются в строке URL после символа ? в виде пар ключ=значение. Если параметров несколько, они разделяются символом &. В Python для корректного формирования query string обычно используют библиотеку urllib.parse или передают params в HTTP-клиенте.

Определение:

GET-запрос передаёт данные через URL, а не в теле запроса. Такие данные называются query-параметрами и добавляются к адресу ресурса. Это удобно для фильтрации, поиска, пагинации и других операций, где данные должны быть видны в ссылке.

Пример использования:

from urllib.parse import urlencode

base_url = "https://api.example.com/search"
params = {
    "q": "python",
    "page": 2,
    "limit": 10
}

url = f"{base_url}?{urlencode(params)}"
print(url)
# https://api.example.com/search?q=python&page=2&limit=10

Если используется HTTP-клиент, параметры можно передать отдельно:

import requests

response = requests.get(
    "https://api.example.com/search",
    params={"q": "python", "page": 2, "limit": 10}
)
print(response.url)

Пояснение кода:

В первом примере urlencode(params) преобразует словарь в строку query-параметров с корректным экранированием специальных символов. Затем эта строка добавляется к базовому URL после ?.

Во втором примере requests.get(..., params=...) сам формирует URL с параметрами. Это удобнее и безопаснее, чем собирать строку вручную, особенно если значения содержат пробелы, & или другие специальные символы.

Ключевые моменты:

  • GET-параметры идут в URL после ?.
  • Пары ключ=значение разделяются &.
  • Для корректного кодирования параметров в Python лучше использовать urlencode или params у HTTP-клиента.
  • GET подходит для получения данных, а не для передачи чувствительной информации.
  • Не стоит вручную склеивать URL, если значения могут содержать спецсимволы.