Итак, я хотел бы добавить кое-что, к чему я пришел к выводу:
FastAPI извлек урок из Flask (и нескольких его плагинов) несколько вещей, включая его простоту. Например, способ объявления маршрутов очень похож. Это облегчает переход с Flask на FastAPI (что, как я вижу, делают многие люди).
Flask - это фреймворк, основанный на текущем / старом стандарте для Python web фреймворки: WSGI.
FastAPI основан на Starlette, которая использует более новый стандарт для асинхронных веб-фреймворков: ASGI.
Starlette была бы более сопоставимой с Flask, будучи чистым «микро» -фреймворк". Почти все, что вы можете сделать с Flask, вы можете сделать с Starlette (и так с FastAPI). Тем не менее, Starlette имеет некоторые функции, недоступные в Flask (как и во многих других платформах WSGI, например, Django, по крайней мере по умолчанию), такие как WebSockets, фоновые задачи и др.
Поскольку FastAPI основан на Starlette, он наследует все свои особенности. Включая WebSockets, поддержку GraphQL, шаблоны и т. Д. c. Таким образом, как минимум, с FastAPI вы можете делать практически все, что можете с Flask.
FastAPI также является микро-фреймворком (возможно, мини-фреймворком, поскольку он включает в себя некоторые дополнительные функции для API). Таким образом, вы можете структурировать проект так, как хотите, во многих случаях вы даже можете использовать большинство тех же файлов из Flask проекта (я это сделал).
Это было объяснено в этом Удивительный пост: https://www.quora.com/What-are-the-advantages-of-using-FastAPI-over-flask
Кроме того, Docker изображение с Uvicorn, управляемым Gunicorn для высокопроизводительных веб-приложений FastAPI в Python 3.7 и 3.6 с автоматической настройкой производительности, может быть используется для минимальной реализации. https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker