2.2 KiB
Запити з формами та файлами
У FastAPI Ви можете одночасно отримувати файли та поля форми, використовуючи File
і Form
.
/// info | Інформація
Щоб отримувати завантажені файли та/або дані форми, спочатку встановіть python-multipart.
Переконайтеся, що Ви створили віртуальне середовище{.internal-link target=_blank}, активували його, а потім встановили бібліотеку, наприклад:
$ pip install python-multipart
///
Імпорт File
та Form
{* ../../docs_src/request_forms_and_files/tutorial001_an_py39.py hl[3] *}
Оголошення параметрів File
та Form
Створіть параметри файлів та форми так само як і для Body
або Query
:
{* ../../docs_src/request_forms_and_files/tutorial001_an_py39.py hl[10:12] *}
Файли та поля форми будуть завантажені як формові дані, і Ви отримаєте як файли, так і введені користувачем поля.
Ви також можете оголосити деякі файли як bytes
, а деякі як UploadFile
.
/// warning | Увага
Ви можете оголосити кілька параметрів File
і Form
в операції шляху, але не можете одночасно оголошувати Body
-поля, які очікуєте отримати у форматі JSON, оскільки запит матиме тіло, закодоване за допомогою multipart/form-data
, а не application/json
.
Це не обмеження FastAPI, а частина протоколу HTTP.
///
Підсумок
Використовуйте File
та Form
разом, коли вам потрібно отримувати дані форми та файли в одному запиті.