Расскажите про опыт с веб-фреймворками Django и FastAPI?
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.