Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про FastAPI: fast api, file, json, post

Как добавить файл и JSON-данные в POST-запрос FastAPI?

Вопрос проверяет способность обрабатывать multipart-запросы, содержащие как файлы, так и JSON-данные.

Короткий ответ

FastAPI позволяет использовать File для загрузки файлов и Form для получения других данных в multipart-запросах.

Длинный ответ

В FastAPI можно обрабатывать запросы, содержащие файлы и JSON-данные, используя специальные параметры маршрутов:

  • File(...) для загрузки файлов.

  • Form(...) для данных в теле запроса.

Для сложных структур данных лучше использовать модели Pydantic.

Пример обработки файла и JSON-данных:

from fastapi import FastAPI, File, Form, UploadFile
from pydantic import BaseModel

app = FastAPI()

class Metadata(BaseModel):
    	name: str
    	description: str

@app.post("/upload/")
async def upload(file: UploadFile = File(...), name: str = Form(...), description: str = Form(...)):
    	return {"filename": file.filename, "name": name, "description": description}

Особенности:

  • JSON-данные передаются через параметры формы.

  • Файлы обрабатываются как UploadFile для оптимизации памяти.

Когда использовать:

  • Для API, обрабатывающих файлы с метаданными, например, загрузка изображений с описанием.a

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    7

Навыки

  • FastAPI

    FastAPI

Ключевые слова

#fast api

#file

#json

#post

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.