Ты ставишь Claude Code задачу — например, обработать загруженное фото или подключить проект к локальной нейросети — а он в ответ создаёт не привычный файл в app/api, а совершенно новую папку: main.py, requirements.txt, отдельную команду запуска. Это FastAPI — Python-фреймворк для бэкенда, который ИИ время от времени подставляет вместо родных API routes Next.js. Для новичка это выглядит как код на чужом языке посреди знакомого проекта, и первая мысль — что-то сломалось. Не сломалось. Но прежде чем соглашаться на такую правку, стоит понять, зачем ИИ вообще пошёл на смену языка и что это меняет в структуре проекта.
Содержание
- Что такое FastAPI простыми словами
- Почему ИИ вообще меняет язык бэкенда посреди проекта на Next.js
- Архитектурная разница: одна программа против двух
- Что даёт FastAPI такого, чего нет в API routes
- Когда стоит согласиться на предложение ИИ
- Когда лучше попросить остаться на одном языке
- Async в Python: почему «быстрый» — не просто слово в названии
- Реальный пример из практики: FastAPI в проекте Viarubi
- Как это выглядит на практике, если ты всё же согласился
- Как заметить переход на FastAPI, если ИИ не предупредил
- Частые ошибки новичков при выборе стека
- Чек-лист «прежде чем согласиться на FastAPI»
- Частые вопросы
- Заключение
Что такое FastAPI простыми словами
FastAPI — это фреймворк для написания серверной части приложения на Python. Он берёт на себя ту же работу, что и API routes в Next.js: принимает запрос от клиента, что-то с ним делает — читает базу данных, вызывает внешний сервис, обрабатывает файл — и отправляет ответ обратно. Разница не в задаче, а в языке и в том, как код запускается.
Название говорит само за себя: «fast» — быстрый, потому что фреймворк построен на асинхронном движке и умеет обрабатывать много запросов параллельно, не дожидаясь, пока каждый предыдущий полностью завершится. «API» — потому что это инструмент именно для построения программных интерфейсов, через которые одна программа обращается к другой.
У FastAPI есть две особенности, которые в мире Python-фреймворков выделяют его среди прочих и объясняют, почему ИИ так охотно его выбирает:
- Автоматическая документация. Стоит описать эндпоинт — маршрут, который принимает запрос, — и FastAPI сам строит интерактивную страницу со списком всех доступных запросов, их параметрами и примерами ответов. Она открывается прямо в браузере по адресу
/docsна запущенном сервере. Для новичка это удобно: не нужно ничего просить у ИИ отдельно, чтобы увидеть, какие маршруты вообще есть в проекте. - Проверка данных через Pydantic. Это библиотека, которая идёт в связке с FastAPI и следит, чтобы данные, пришедшие в запросе, соответствовали ожидаемой форме — например, что поле
emailдействительно похоже на почту, аage— действительно число. Если данные не подходят, FastAPI сам вернёт понятную ошибку, не дожидаясь, пока код упадёт где-то глубже.
Для человека без опыта программирования эти детали пока не критичны. Важнее другое: FastAPI — не мода и не случайный выбор ИИ, а один из самых распространённых инструментов в мире Python-разработки, особенно там, где бэкенд работает с данными, файлами или нейросетями.
Почему ИИ вообще меняет язык бэкенда посреди проекта на Next.js
Курс учит собирать приложения на Next.js, и вся логика бэкенда там живёт в виде API routes — файлов внутри того же самого проекта на JavaScript и TypeScript. Никакого отдельного сервера, никакого второго языка: один репозиторий, один процесс, одна команда запуска. Так проще всего для новичка, и именно поэтому курс выбрал такую архитектуру для «Змейки».
ИИ обучен на огромном количестве реального кода из открытых источников, и в этом коде есть устойчивая закономерность: когда задача связана с обработкой данных, машинным обучением или локальными нейросетями, подавляющее большинство примеров написано на Python, а не на JavaScript. Библиотеки для анализа таблиц, работы с изображениями, обучения моделей и подключения к инструментам вроде Ollama в первую очередь выходят именно на Python и только потом, если вообще выходят, портируются на другие языки. Когда ты просишь ИИ реализовать что-то из этой области, он с высокой вероятностью потянется за инструментом, который видел в такой роли тысячи раз, — и это часто оказывается FastAPI.
Есть и вторая причина, более практическая: если в проекте уже существует Python-бэкенд — например, потому что ты сам его завёл раньше или взял за основу чужой шаблон, — ИИ логично продолжает работать в том же стеке, а не пытается переписать всё на JavaScript на ходу. Он ориентируется на то, что уже есть в репозитории, а не выбирает язык с чистого листа при каждой новой задаче.
Проблема в том, что ИИ редко объясняет это решение вслух. Он просто создаёт main.py и продолжает работу, как будто второй язык в проекте — это нормально по умолчанию. Для опытного разработчика, который держит в голове всю картину, это может быть удачным выбором. Для новичка, который ещё не понимает последствий, — это решение, которое стоит хотя бы заметить и обдумать, прежде чем принимать.
Архитектурная разница: одна программа против двух
Здесь и находится главное, что нужно понять новичку: FastAPI и API routes Next.js решают одну и ту же задачу — принять запрос и вернуть ответ, — но устроены принципиально по-разному на уровне архитектуры.
API routes в Next.js — это часть того же самого проекта, что и фронтенд. Файл в папке app/api компилируется вместе со всем остальным кодом, разворачивается вместе с сайтом и запускается либо как часть одного процесса, либо как отдельная бессерверная функция — но всё равно из того же репозитория, тем же деплоем, на том же языке. Если ты правишь и страницу игры, и логику сохранения рекорда, оба изменения лежат в одних и тех же файлах одного и того же проекта и уезжают в прод одной командой.
FastAPI — это отдельная программа. У неё свой процесс, который нужно запускать отдельной командой, свой список зависимостей в requirements.txt — Python-аналог package.json, — и своё пространство переменных окружения. Формально это второй сервер, даже если физически он крутится на той же машине, что и фронтенд. Из этого вытекает целая цепочка практических последствий:
| API routes (Next.js) | FastAPI | |
|---|---|---|
| Язык | Тот же, что у фронтенда — JS/TS | Отдельный — Python |
| Репозиторий и деплой | Один, вместе с фронтендом | Отдельный процесс, часто отдельный деплой |
| Диспетчер зависимостей | npm — тот же, что уже используется в проекте | pip — новый инструмент, свой файл зависимостей |
| Запросы между клиентом и сервером | Внутри одного домена, без настроек CORS | Обычно разные адреса — нужна настройка CORS |
| Переменные окружения | Один файл .env на весь проект |
Отдельный набор переменных для Python-сервера |
| Порог входа для новичка | Низкий — один язык, один процесс | Выше — второй язык, вторая система запуска |
Схема запроса при таком разделении выглядит так: клиент обращается к FastAPI как к отдельному адресу, тот проверяет данные, обращается к базе или другому сервису и возвращает ответ обратно.
flowchart TB
A["Браузер отправляет запрос"] --> B["FastAPI принимает эндпоинт"]
B --> C["Pydantic проверяет данные"]
C --> D["Обращение к базе или сервису"]
D --> E["FastAPI собирает ответ"]
E --> F["JSON возвращается клиенту"]
Ключевая мысль: пока фронтенд и бэкенд — один проект на одном языке, у новичка одна точка входа, одна команда запуска и один набор проблем, если что-то не работает. Как только появляется второй сервер на другом языке, точек входа становится две, а вместе с ними — два места, где может закрасться ошибка, два набора зависимостей, за которыми нужно следить, и два процесса, которые нужно запускать и разворачивать по отдельности. Что вообще такое API и зачем он нужен любому современному приложению, подробно разобрано в статье про устройство API — понимание этой базы делает разницу между двумя архитектурами куда нагляднее.
Что даёт FastAPI такого, чего нет в API routes
Смена языка — не самоцель ИИ, а следствие того, что определённые задачи в Python-экосистеме решаются готовыми инструментами, у которых просто нет прямого аналога в JavaScript такого же качества и зрелости. Вот основные области, где это действительно так.
Локальные нейросети. Ollama — популярный способ запускать языковые модели прямо на своей машине или сервере, без обращения к облачному API, — в первую очередь предоставляет Python-библиотеку для взаимодействия с моделью: отправки промптов, получения потокового ответа, управления параметрами генерации. Через HTTP запрос к Ollama можно обратиться и из JavaScript, но многие готовые примеры, туториалы и вспомогательные обёртки в первую очередь написаны на Python, и ИИ чаще опирается именно на них.
Обработка данных. Библиотеки вроде pandas — для работы с таблицами — или NumPy — для быстрых вычислений с массивами чисел — десятилетиями развиваются как основной инструментарий Python для анализа данных. Если задача — обработать большой CSV-файл, посчитать статистику или подготовить данные для отчёта, Python-экосистема предлагает готовые решения, аналогов которым в JavaScript либо нет, либо они заметно менее развиты.
Машинное обучение. Обучение собственных моделей, работа с готовыми моделями компьютерного зрения или обработки текста — область, которая исторически выросла вокруг Python: там родились основные библиотеки, там выходят новые исследовательские инструменты, туда в первую очередь портируются свежие разработки.
Обработка изображений и видео на сервере. Библиотеки для работы с изображениями — изменение размера, наложение фильтров, распознавание объектов — тоже в основном сначала появляются на Python, и лишь потом, частично, переносятся в JavaScript-экосистему.
Ни одна из этих задач не встречается в учебном проекте «Змейка» — это простая игра с локальным рекордом, без обработки данных и без нейросетей на сервере. Поэтому в рамках курса FastAPI не понадобится. Но если ты после курса продолжаешь собирать что-то своё и задача попадает в один из этих четырёх пунктов, предложение ИИ перейти на FastAPI стоит воспринимать всерьёз, а не как случайную прихоть.
Когда стоит согласиться на предложение ИИ
Соглашаться имеет смысл, когда задача объективно требует чего-то из Python-экосистемы, а не когда FastAPI просто оказался под рукой у модели. Несколько ориентиров, по которым это можно проверить самому, не разбираясь в коде:
- Задача связана с локальной нейросетью или ML-моделью. Если ты хочешь запустить Ollama или другую модель на своём сервере и обращаться к ней из приложения, Python-обёртки для этого обычно удобнее и надёжнее прямых HTTP-запросов из JavaScript.
- Нужна серьёзная обработка данных. Разбор больших файлов, статистика, генерация отчётов из таблиц — там, где на JavaScript пришлось бы писать логику почти с нуля, в Python зачастую есть готовая библиотека под конкретную задачу.
- Бэкенд уже существует на Python. Если проект изначально строился на FastAPI — например, потому что ты сам так решил на старте, — новые фичи логичнее добавлять в том же стеке, а не создавать третий язык в одном проекте.
- Автоматическая документация API реально нужна. Если ты планируешь дать доступ к своему API другим разработчикам или командам, встроенная интерактивная документация FastAPI экономит время, которое иначе ушло бы на её ручное описание.
Во всех этих случаях согласие на FastAPI — не усложнение ради усложнения, а выбор инструмента, который действительно лучше подходит задаче. Тут стоит вспомнить, что похожая логика уже применялась в курсе к другому Python-инструменту — Streamlit, который ИИ иногда предлагает для быстрого построения внутреннего интерфейса без отдельной фронтенд-разработки. Общий принцип одинаковый: если задача решается специализированным Python-инструментом заметно быстрее, чем на связке из курса, стоит хотя бы рассмотреть такой вариант, а не отклонять его автоматически только потому, что это другой язык.
Когда лучше попросить остаться на одном языке
Куда чаще встречается обратная ситуация: задача не требует ничего специфически питоновского, а FastAPI появляется просто потому, что ИИ выбрал знакомый ему по обучающим данным паттерн. В этих случаях лучше прямо попросить остаться на JavaScript и TypeScript — вот типичные примеры такой задачи:
- Сохранить данные в базу и прочитать их обратно — обычный CRUD, который одинаково просто делается и на API routes, и на FastAPI, без разницы в сложности.
- Отправить запрос к внешнему сервису по HTTP — платёжному шлюзу, почтовой рассылке, любому REST API — это делает
fetchпрямо из API routes без единой дополнительной библиотеки. - Проверить пароль, создать сессию, обработать вход пользователя — стандартная задача аутентификации, для которой в экосистеме Next.js есть проверенные решения.
- Обработать форму, провалидировать поля, отправить письмо — всё это укладывается в возможности API routes без всякого второго сервера.
Async в Python: почему «быстрый» — не просто слово в названии
Часть уверенности, с которой ИИ выбирает FastAPI, связана с тем, как фреймворк обрабатывает несколько запросов одновременно. Здесь у новичка, который уже видел Next.js, есть неожиданное преимущество: сам JavaScript изначально построен вокруг асинхронности — недаром в коде API routes то и дело встречаются async и await при обращении к базе или внешнему сервису. FastAPI устроен по похожему принципу, только на стороне Python, где асинхронность долгое время была скорее исключением, чем нормой.
Без async сервер обрабатывает запросы по очереди: пока один запрос ждёт ответа от базы данных, все остальные стоят в очереди и ничего не делают, даже если сама база просто ждёт диска или сети. С async сервер, ожидая ответа от одного запроса, успевает параллельно заняться другими — не за счёт нескольких процессов, а за счёт того, что не тратит время впустую на ожидание. FastAPI построен вокруг этого принципа с самого начала, а не добавляет его поверх старой архитектуры, — поэтому под нагрузкой из множества одновременных запросов он ведёт себя заметно устойчивее многих более старых Python-фреймворков.
Для повседневной работы над учебным проектом эта деталь редко имеет значение — трафик «Змейки» не настолько велик, чтобы разница была заметна. Но она объясняет, почему в связке с ИИ и его инструментами — например, при обращении к Ollama, где один ответ модели может генерироваться несколько секунд, — FastAPI держится увереннее многих альтернатив: пока одна нейросеть думает над ответом, сервер способен параллельно принимать и обрабатывать другие запросы, а не замирать в ожидании.
Для новичка без опыта программирования цена второго языка — не абстракция, а конкретные ежедневные потери времени. Каждый дополнительный язык — это отдельная система управления зависимостями, которую нужно понимать хотя бы поверхностно. Отдельный процесс, который надо не забыть запустить, прежде чем тестировать приложение. Отдельный деплой, который может сломаться независимо от фронтенда, и тогда придётся разбираться, что именно упало — сайт или сервер за его спиной. Отдельный набор переменных окружения и секретов, а значит — ещё одно место, откуда они потенциально могут утечь.
Всё это оправдано, если Python реально даёт то, чего нет в JavaScript. И совершенно не оправдано, если задача — обычный запрос к базе, который одинаково просто написать на любом из двух языков. В таком случае честный вопрос ИИ звучит просто: «Можно решить эту же задачу на API routes, без второго сервера?» В подавляющем большинстве случаев для типовой задачи ответ — да, а решение получится проще для новичка ровно потому, что не добавляет второй язык туда, где он не нужен.
Реальный пример из практики: FastAPI в проекте Viarubi
Чтобы не оставлять разговор в теории, стоит привести пример из реальной практики, не связанный со «Змейкой» напрямую. Игровое приложение Viarubi построено на другом стеке, чем курсовой проект: Python 3.12, FastAPI и PostgreSQL в качестве базы данных. Это не гипотетический пример и не то, чему учит курс, а действующий факт — там, где задача изначально ближе к обработке данных и интеграции с другими Python-инструментами, стек на FastAPI выбран осознанно, а не потому, что «так получилось».
Показателен здесь сам принцип выбора, а не конкретные детали реализации: решение о языке бэкенда принимается один раз, исходя из природы задачи, а не меняется от фичи к фиче. Если проект с самого начала растёт вокруг обработки данных или интеграций, для которых Python-экосистема сильнее, всё приложение целиком строится на этом стеке — FastAPI как фреймворк для API, PostgreSQL как надёжная реляционная база под ним. Если же проект — сайт с формами и обычной бизнес-логикой, как «Змейка» или большинство учебных приложений курса, естественнее держать всё на одном языке и не создавать архитектуру, которая нужна другому классу задач.
Как это выглядит на практике, если ты всё же согласился
Допустим, задача действительно попадает в одну из категорий выше, и ты решил согласиться на FastAPI. Что это значит для проекта на практике.
Во-первых, в репозитории появляется отдельная папка с Python-кодом — например, backend/ рядом с основным проектом на Next.js. Она живёт своей жизнью: свой requirements.txt, своя структура файлов, свой способ запуска через команду вроде uvicorn main:app — это сервер, который непосредственно исполняет код FastAPI.
Во-вторых, фронтенд на Next.js начинает обращаться к этому серверу как к внешнему API — по полному адресу, а не по внутреннему маршруту внутри своего же проекта. Из-за этого почти всегда нужна настройка CORS — правил, которые разрешают браузеру обращаться с одного домена или порта на другой. Без этой настройки браузер по умолчанию блокирует такие запросы из соображений безопасности, и первая же попытка обратиться к FastAPI из фронтенда завершится ошибкой в консоли разработчика.
В-третьих, встаёт вопрос отдельного деплоя. FastAPI-сервер нужно куда-то выложить так же, как выкладывается фронтенд, — со своим набором переменных окружения, своим процессом запуска и своим мониторингом падений. Общие принципы деплоя бэкенда — какие данные для этого нужны и на что обращать внимание — разобраны в статье про деплой на Amvera для новичка; Python-приложения там разворачиваются по похожей логике, что и Node.js-проекты, просто с другим набором команд запуска.
В-четвёртых, если FastAPI используется как раз для того, чтобы обращаться к нейросети — своей локальной через Ollama или внешней вроде Claude, — стоит заранее понимать, как устроено такое подключение и какие вопросы возникают при работе с ИИ-моделью из бэкенда: лимиты, ключи доступа, обработка длинных ответов. Это подробно разобрано в статье про подключение Claude API к своему бэкенду — принципы там применимы что к FastAPI, что к API routes, разница только в синтаксисе конкретного языка.
Ничего из перечисленного не является непреодолимой сложностью. Но это ощутимо больше движущихся частей, чем при работе в одном языке, и об этом стоит знать заранее, а не обнаруживать по ходу, когда что-то внезапно перестаёт работать.
Как заметить переход на FastAPI, если ИИ не предупредил
Иногда правка проходит незаметно: ИИ упоминает новый файл вскользь, а новичок замечает второй язык в проекте только когда что-то перестаёт запускаться привычной командой. Несколько признаков, по которым переход на FastAPI видно сразу, даже не читая код построчно:
- В проекте появился файл
main.pyили папкаbackend/с файлами.pyвнутри. - Рядом с привычным
package.jsonвозникrequirements.txt— список Python-зависимостей. - В инструкции по запуску звучит команда с
uvicornвместо привычногоnpm run dev. - Сервер поднимается на порту
8000— стандартном для FastAPI, — тогда как Next.js обычно работает на3000. - В коде встречаются конструкции
from fastapi import FastAPIили@app.get(...)— это уже однозначный признак нового фреймворка, а не JS-варианта того же слова.
Заметив любой из этих признаков, стоит остановиться и переспросить ИИ напрямую: зачем понадобился второй язык и можно ли решить задачу без него. Это быстрее, чем разбираться постфактум, почему в проекте вдруг два процесса вместо одного.
Частые ошибки новичков при выборе стека
Ошибка 1. Соглашаться на FastAPI не глядя, потому что «ИИ лучше знает»
ИИ предлагает инструмент, исходя из паттернов в обучающих данных, а не из понимания конкретно твоего проекта и твоего уровня подготовки. Если задача — обычный CRUD, ИИ может предложить FastAPI просто потому, что часто видел такую связку в обучающих примерах, а не потому что она действительно нужна здесь.
Ошибка 2. Отклонять любое предложение Python автоматически
Обратная крайность не менее вредна: если задача реально требует Python-экосистемы — например, работы с локальной нейросетью, — упорное настаивание на одном JavaScript означает либо отсутствие готового решения, либо самостоятельное написание с нуля того, что в Python уже готово и проверено.
Ошибка 3. Не спрашивать у ИИ, зачем нужен второй язык
Самый простой способ избежать первых двух ошибок — прямо спросить: «Зачем здесь нужен FastAPI, а не API routes?» Если ответ звучит убедительно и указывает на конкретную библиотеку или возможность, которой нет в JavaScript, — это сигнал согласиться. Если ответ расплывчатый или сводится к «так обычно делают» — это повод попросить решение на одном языке.
Ошибка 4. Забыть, что второй язык требует отдельного деплоя
Даже если код на FastAPI написан и работает локально, забыть про отдельный деплой — частая ошибка. Приложение может отлично работать на компьютере разработчика и полностью развалиться в проде, если Python-сервер не выложен отдельно от фронтенда или выложен без нужных переменных окружения.
Ошибка 5. Не настраивать CORS и удивляться ошибкам в браузере
Когда фронтенд и Python-бэкенд оказываются на разных адресах, браузер по умолчанию блокирует запросы между ними. Без явной настройки CORS на стороне FastAPI все обращения с фронтенда будут падать с ошибкой доступа, даже если сам API-код написан правильно.
Чек-лист «прежде чем согласиться на FastAPI»
- Задача реально требует библиотеки или возможности, которой нет в JavaScript-экосистеме.
- Ты спросил у ИИ, зачем конкретно нужен второй язык, и ответ указывает на конкретную причину, а не на привычку.
- Ты понимаешь, что появится отдельный процесс, который нужно запускать своей командой.
- Ты готов к отдельному деплою Python-сервера, отдельно от фронтенда на Next.js.
- Учтена настройка CORS между фронтендом и FastAPI-сервером.
- Есть план, куда пойдут переменные окружения и секреты для второго сервера.
- Ты убедился, что для такой же задачи нет достаточно простого решения на API routes.
Если хотя бы половина пунктов вызывает сомнение, разумнее сначала попросить ИИ показать вариант на одном языке и сравнить, действительно ли Python даёт ощутимое преимущество для этой конкретной задачи.
Частые вопросы
Можно ли использовать и Next.js, и FastAPI в одном проекте?
Да, технически это обычная практика: фронтенд и часть бэкенда остаются на Next.js, а отдельная задача — например, обработка данных или связь с нейросетью — выносится в FastAPI как отдельный сервис. Но для новичка это усложнение архитектуры, а не бесплатная опция, поэтому стоит подключать второй язык только под задачу, которая его действительно требует.
ИИ уже написал код на FastAPI, а я не просил — что делать?
Не применять правку сразу. Спросить у ИИ, зачем понадобился второй язык именно для этой задачи, и попросить показать альтернативу на API routes. Если задача — обычный запрос к базе или внешнему сервису, вариант на одном языке почти всегда найдётся и будет проще для дальнейшей поддержки.
Нужно ли учить Python, чтобы работать с FastAPI-кодом от ИИ?
Не обязательно на уровне написания кода с нуля — ИИ пишет код и на Python так же, как на JavaScript. Но базовое понимание, что такое отдельный процесс, зависимости через pip и переменные окружения для второго сервера, пригодится, чтобы ставить корректные задачи и понимать, что вообще происходит в проекте.
Чем FastAPI отличается от Streamlit, если оба на Python?
Это инструменты для разных задач. FastAPI строит API — сервер, который принимает запросы и отдаёт данные, но сам по себе не рисует интерфейс. Streamlit, наоборот, собирает готовый визуальный интерфейс из Python-кода без отдельного фронтенда, но не предназначен для построения полноценного API для внешних клиентов.
Можно ли задеплоить FastAPI на том же хостинге, что и Next.js-проект?
Многие современные хостинги, включая Amvera, поддерживают запуск Python-приложений так же, как Node.js-проектов, — общие принципы разобраны в статье про деплой для новичка. Но это всё равно будет отдельный проект деплоя, со своими настройками, даже если физически он размещён рядом с фронтендом.
ИИ предлагает FastAPI для подключения к Ollama — стоит соглашаться?
Это как раз тот случай, где согласие обычно оправдано: у Ollama основная экосистема инструментов и примеров сосредоточена вокруг Python, и FastAPI как обёртка вокруг такого подключения — распространённое и разумное решение. Если при этом ты подключаешь и облачную модель вроде Claude, общие принципы работы с ИИ-API из своего бэкенда разобраны отдельно в статье про подключение Claude API.
Заключение
FastAPI — не ошибка ИИ и не признак того, что он запутался в задаче. Это реальный и уважаемый инструмент, который решает ту же задачу, что и API routes Next.js, но опирается на другую экосистему — и иногда эта экосистема действительно сильнее подходит конкретной проблеме, особенно там, где в дело вступают данные, файлы или локальные нейросети.
Главное, что стоит вынести из этого разбора: смена языка бэкенда — не мелкая техническая деталь, а архитектурное решение, которое добавляет проекту второй процесс, второй деплой и вторую систему зависимостей. Для курсовой «Змейки» это решение не нужно вовсе. Для проекта за пределами курса — стоит того, чтобы задать ИИ один прямой вопрос: зачем здесь нужен второй язык, и что он даёт такого, чего нет в уже знакомом JavaScript. Если ответ убедительный — иди дальше на FastAPI. Если нет — попроси решение на одном языке и сохрани проект простым.
Читай дальше
Все статьиНе просто статьи — тебя доведут до результата
В практикуме за 2499 ₽ рядом живая команда практикующих разработчиков и маркетологов: ведём по шагам до твоего работающего приложения. Не «ролики и сам разбирайся» — помогаем на каждом затыке.
Перейти к практикуму