РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
78 of 307 menu

Функция File

Функция File применяется внутри функции-обработчика и указывает FastAPI, что параметр нужно принять как файл из тела запроса с типом multipart/form-data. Первым параметром передаётся значение по умолчанию, например ... для обязательного файла. Дополнительные параметры, такие как media_type и description, описывают загружаемый файл.

Синтаксис

from fastapi import File File(default=..., *, media_type=None, description=None)

Пример

Давайте примем файл на адресе '/upload':

from fastapi import FastAPI, File app = FastAPI() @app.post('/upload') async def upload(file: bytes = File()): return {'size': len(file)}

Результат выполнения кода при загрузке файла с содержимым 'abcde':

{"size": 5}

Пример

Давайте примем файл как объект UploadFile и прочитаем его имя и содержимое:

<+python+> from fastapi import FastAPI, File, UploadFile app = FastAPI() @app.post('/upload') async def upload(file: UploadFile = File()): content = await file.read() return {'name': file.filename, 'size': len(content)} <-python+>

Результат выполнения кода при загрузке файла 'hello.txt' с содержимым 'abcde':

{"name": "hello.txt", "size": 5}

Пример

Давайте примем сразу несколько файлов, объявив параметр как список:

from fastapi import FastAPI, File, UploadFile app = FastAPI() @app.post('/upload-many') async def upload_many(files: list[UploadFile] = File()): names = [file.filename for file in files] return {'names': names}

Результат выполнения кода при загрузке файлов 'user.txt' и 'article.txt':

{"names": ["user.txt", "article.txt"]}

Смотрите также

  • функция Form,
    которая принимает поля формы из тела запроса
  • функция Body,
    которая принимает произвольное тело запроса
  • параметр media_type,
    который задаёт тип содержимого параметра
  • параметр description,
    который добавляет описание параметра в документацию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить