Sobes.tech
Back to questions
Middle
11

Расскажите про опыт с веб-фреймворками Django и FastAPI?

Companies where asked
1221 Systems

Answer from AI

sobes.tech AI

Что хотят услышать интервьюеры:

Ожидают услышать, что есть практический опыт работы и с Django, и с FastAPI, и понимание, когда какой фреймворк уместнее. Важно показать знание типичных задач: API, интеграции, админка, работа с БД, валидация, авторизация. Хорошо, если можно сравнить плюсы и ограничения каждого подхода на реальном проекте.

Определение:

Django — это полнофункциональный веб-фреймворк для быстрого создания приложений с готовой инфраструктурой: ORM, админкой, миграциями, шаблонами, системой аутентификации. FastAPI — современный фреймворк для построения API, который особенно удобен для сервисов с высокой нагрузкой на HTTP-слой, строгой типизацией и автоматической генерацией OpenAPI-документации. Обычно Django выбирают, когда нужен “всё в одном”, а FastAPI — когда нужен компактный и быстрый backend/API.

Пример использования:

Django удобно использовать для внутреннего кабинета или CRM, где нужны модели, роли, админка и CRUD-операции. FastAPI хорошо подходит для ML-сервиса, который принимает запрос с данными, запускает inference и возвращает JSON-ответ с предсказанием.

# FastAPI: простой endpoint для ML-предсказания
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class PredictRequest(BaseModel):
    age: int
    income: float

@app.post("/predict")
def predict(data: PredictRequest):
    score = data.age * 0.1 + data.income * 0.01
    return {"risk_score": score}

Пояснение кода:

Код показывает типичный сценарий использования FastAPI для ML-инференса. Сначала создаётся приложение FastAPI(). Затем через BaseModel описывается схема входных данных: age и income автоматически валидируются. Декоратор @app.post("/predict") объявляет HTTP-метод и маршрут, а функция predict получает уже проверенный объект data и возвращает JSON-ответ. В реальном проекте вместо простой формулы здесь обычно вызывается модель или пайплайн предобработки.

Ключевые моменты:

  • Django сильнее как “платформа”: ORM, админка, миграции, auth, шаблоны, готовая структура проекта.
  • FastAPI сильнее как API-фреймворк: скорость разработки, типизация, валидация, автогенерация Swagger/OpenAPI.
  • Для ML/AI задач FastAPI часто удобнее для обёртки модели в сервис предсказаний.
  • Django часто выбирают для продуктовых систем, где кроме API нужен полноценный backend с бизнес-логикой и интерфейсом администрирования.
  • Важно уметь говорить не только про синтаксис, но и про выбор инструмента под задачу, поддержку и масштабирование.
  • Хороший ответ на собеседовании — сравнение по практическим критериям: скорость старта, сложность проекта, API-only vs full-stack backend.