Для передачи данных формы (`form data`) при использовании библиотеки `requests` в Python, вы можете использовать аргумент `data`, представляющий собой словарь, где ключи - это имена полей формы, а значения - это значения этих полей. Вот пример того, как можно отправить POST-запрос с данными формы:
```python
import requests
# Указываем URL, куда отправляем запрос
url = 'http://example.com/api'
# Подготавливаем словарь данных формы
form_data = {
'key1': 'value1',
'key2': 'value2'
}
# Отправляем POST-запрос с данными формы
response = requests.post(url, data=form_data)
# Проверяем ответ
print(response.text)
# Если нужно обработать JSON-ответ
if response.headers.get('Content-Type') == 'application/json':
print(response.json())
```
Когда вы используете аргумент `data`, `requests` отправляет данные с типом содержимого (`Content-Type`) `application/x-www-form-urlencoded`, который является стандартным типом содержимого для форм, отправляемых через обычные веб-браузеры.
Если вам нужно отправить данные формы в многочастном кодировании (`multipart/form-data`, например, для передачи файлов), вы должны использовать `files` вместо `data`:
```python
# Для передачи файла
files = {'file': open('report.csv', 'rb')}
response = requests.post(url, files=files)
# Если нужно отправить и файлы, и обычные данные формы
multipart_form_data = {
'file': ('report.csv', open('report.csv', 'rb')),
'key1': ('', 'value1'),
'key2': ('', 'value2')
}
response = requests.post(url, files=multipart_form_data)
```
Важно корректно закрывать файлы после их использования, что можно сделать с помощью менеджера контекста `with`.
Используйте те же подходы для других типов запросов (`requests.get`, `requests.put` и т.д.), аргументы `data` и `files` работают аналогичным образом.