Files
fastapi/docs/ru/docs/tutorial/request-forms.md
Sebastián Ramírez c5ab51d50f 🌐 Update translations for ru (update-outdated) (#15894)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
2026-07-01 12:51:57 +00:00

4.2 KiB
Raw Blame History

Данные формы

Когда вам нужно получить поля формы вместо JSON, вы можете использовать Form.

/// note | Примечание

Чтобы использовать формы, сначала установите python-multipart.

Убедитесь, что вы создали виртуальное окружение, активировали его, а затем установили пакет, например:

$ pip install python-multipart

///

Импорт Form

Импортируйте Form из fastapi:

{* ../../docs_src/request_forms/tutorial001_an_py310.py hl[3] *}

Определение параметров Form

Создайте параметры формы так же, как это делается для Body или Query:

{* ../../docs_src/request_forms/tutorial001_an_py310.py hl[9] *}

Например, в одном из способов использования спецификации OAuth2 (называемом «password flow» - аутентификация по паролю) требуется отправить username и password в виде полей формы.

спецификация требует, чтобы поля были строго названы username и password и отправлялись как поля формы, а не JSON.

С помощью Form вы можете объявить те же настройки, что и с BodyQuery, Path, Cookie), включая валидацию, примеры, псевдоним (например, user-name вместо username) и т.д.

/// note | Примечание

Form — это класс, который наследуется непосредственно от Body.

///

/// tip | Подсказка

Чтобы объявлять данные формы, вам нужно явно использовать Form, иначе параметры будут интерпретированы как параметры запроса или параметры тела (JSON).

///

О «полях формы»

Обычно способ, которым HTML-формы (<form></form>) отправляют данные на сервер, использует «специальное» кодирование для этих данных, отличное от JSON.

FastAPI гарантирует, что эти данные будут прочитаны из нужного места, а не из JSON.

/// note | Технические детали

Данные из форм обычно кодируются с использованием «типа содержимого» application/x-www-form-urlencoded.

Но когда форма содержит файлы, она кодируется как multipart/form-data. О работе с файлами вы прочтёте в следующей главе.

Если вы хотите узнать больше про эти кодировки и поля формы, обратитесь к MDN веб-документации для POST.

///

/// warning | Предупреждение

Вы можете объявлять несколько параметров Form в операции пути, но вы не можете одновременно объявлять поля Body, которые вы ожидаете получить в виде JSON, так как запрос будет иметь тело, закодированное с использованием application/x-www-form-urlencoded, а не application/json.

Это не ограничение FastAPI, это часть протокола HTTP.

///

Резюме

Используйте Form для объявления входных параметров данных формы.