Метод post() модуля requests в Python

Метод post() используется, когда мы хотим отправить какие-то данные на сервер. Затем данные сохраняются в базе данных.

Что такое HTTP-запрос в Python?

POST отправляет данные на сервер для создания ресурса. Данные, отправленные на сервер с запросом POST, хранятся в теле запроса HTTP.

Ключевые моменты POST-запроса

  1. Запросы POST не имеют ограничений по длине данных. Это может быть все, что вы хотите.
  2. POST-запросы не сохраняются в истории браузера.
  3. Никогда не кэшируются.
  4. Не могут быть добавлены в закладки.

Что такое модуль запросов Python?

Requests — это HTTP-библиотека под лицензией Apache2, написанная на Python, которая помогает сделать HTTP-запросы более простыми и удобными для человека.

Как использовать модуль requests в Python?

Вам необходимо установить модуль запросов в вашей системе, чтобы использовать его в Python. Чтобы установить модуль requests, выполните следующую команду.

Чтобы использовать Pipenv для управления пакетами Python, вы можете запустить следующую команду.

После установки библиотеки запросов вы можете использовать ее в своем приложении. Например, импорт запросов выглядит следующим образом.

Что такое метод requests.post() в Python?

Чтобы создать запрос POST в Python, используйте метод request.post(). Метод запросов post() принимает URL-адреса, данные, json и аргументы в качестве аргументов и отправляет запрос POST на указанный URL-адрес.

Вы можете отправить данные вместе с post-запросом.

Синтаксис

Параметры

Параметр Описание
url обязателен, URL-адрес запроса.
data необязателен. Это может быть словарь, список кортежей, байты или файловый объект для отправки по указанному url.
json необязательно. Это объект JSON для отправки по указанному URL.
files необязательно. Это словарь файлов для отправки по указанному url.
allow_redirects необязательно. Это логическое значение для включения/отключения перенаправления.
Значение по умолчанию True (разрешает перенаправление)
auth необязательно. Это кортеж для включения безопасной аутентификации по протоколу HTTP.
По умолчанию None
cert необязательно. Это строка или кортеж, указывающий файл сертификата или ключ.
По умолчанию None
cookies необязательно. Это словарь файлов cookie для отправки по указанному url-адресу.
По умолчанию None
headers необязательно. Это словарь HTTP-заголовков для отправки по указанному URL.
По умолчанию None
proxies необязательно. Это словарь протокола для URL-адреса прокси-сервера.
По умолчанию None
stream необязательно. Логическое значение показывает, должен ли ответ быть немедленно загружен (False) или передан потоком (True).
Значение по умолчанию False
timeout необязательно. Это кортеж, или число, указывающее, сколько секунд требуется для ожидания, пока клиент установит соединение и отправит ответ. Аргумент по умолчанию равен None, что означает, что запрос будет продолжаться до тех пор, пока соединение не будет закрыто или потеряно.
verify необязательно. Это логическое значение или строковое указание для проверки наличия TLS-сертификата сервера или нет.
Значение по умолчанию True

Как использовать requests.post() в Python?

Чтобы использовать метод request.post(), передайте URL-адрес и данные методу post() и проверьте ответ. Отправьте запрос POST на веб-сайт https://httpbin.org с помощью метода post() и распечатайте ответ.

Выход

В этом примере мы получаем объект ответа, который содержит много информации. Во-первых, объект формы содержит наш ключ и значение, st3 и Jim hopper. Во-вторых, есть объект заголовка, содержащий некоторые свойства, а затем json, источник и URL.

Более сложные POST-запросы

Вы можете отправить некоторые данные, закодированные в форме, так же, как HTML-форма. Для этого вы должны передать словарь аргументу данных.

Ваш словарь данных будет автоматически закодирован с помощью формы при запросе из приложения.

Выход

Бывают случаи, когда вам нужно отправить данные, которые не закодированы в форме. Например, если вы передадите строку вместо dict, данные будут опубликованы напрямую.

Выход

Вы можете увидеть свойство данных. Функция Python json.dumps() преобразует словарь в строку, а затем мы печатаем строку и ее тип. Таким образом, в базе данных строка хранится напрямую.

Вместо того, чтобы кодировать dict, вы также можете передать его напрямую, используя параметр json, который будет закодирован автоматически. См. следующий код.

Это даст нам тот же результат, что и выше. Здесь мы взяли параметр json и передали словарь как значение, которое автоматически кодируется в строку.

POST-файл с кодировкой из нескольких частей

Создайте составной POST-запрос, отправив файл на сервер.

В текущем каталоге проекта у меня есть текстовый файл с именем app.txt, который имеет следующее содержимое: Hello World.

Выход

В ответ мы получили пустой объект данных.

Мы также получили файлы для возражения в ответ, атрибут файла, значением которого является содержимое файла. В нашем случае это Hello World.

Если вы публикуете большой файл как запрос multipart/form-data, по умолчанию библиотека запросов не поддерживает этого, но за вас эту работу сделает отдельный пакет, который называется request-toolbelt.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python