Comments 23
Flask уже апологет. Но фаст апи норм движется. Обрастет скоро всем, что нужно. Вопрос времени.
по сравнению с Django (использует MVC), в котором проект часто превращается в странную субстанцию из папок в папках
Тут вообще не понял. В 2023 появились какие-то другие способы организации проектов?
Чистая архитектура?
Что чистая архитектура? У вас куда-то исчезнут файлы с директориями? Что за решение, какую пользу оно даёт, как это выглядит?
А что непонятного про структуру джанго? Ты не можешь ее изначально менять, ты должен ее придерживаться. В FastAPI же можешь писать, как хочешь, что тебя не ставит в какие-либо рамки.
Фокус был на "странная субстанция из папок в папках". Вы в фастапи где файлы храните? Не в папках? А в чём? И почему вы уверены, что для внешнего наблюдателя ваша организация файлов в фастапи не будет выглядеть некоей субстанцией?
Сравните изначальный темплейт Джанго и ФастАПИ и скажите на каком намного проще и быстрее начать писать новичку. Я не думаю, что наличие одного main.py, да и папки models выглядит также непонятно, как начальный проект в Django.
"и скажите на каком намного проще и быстрее начать писать новичку" вот как раз новичкам нужна структура как в Django, иначе всё плохо будет, еще со времен Flask это проверенно, ну не могут они сразу, без опыта, нормально это сделать.
Когда приходишь на Django-проект ты примерно представляешь чего ожидать: модели, роутинг, вьюшки, DRF... Все проекты же на FastAPI/Flask - кардинально отличаются друг от друга. Там может быть как разбиение функционала с выделением доменов (ха-ха, как в Django), так и просто месиво из моделей, валидаторов, ендпоинтов и пр.
С гибкостью фреймворков приходит и большая ответственность. Так что напоследок риторический вопрос: а вы уверены, что знаете как правильно разбивать проект на модули лучше, чем тысячи разработчиков, которые пишут на Django?
В скрине бенча от TechEmpower фреймворк Tornado представлен дважды - вверху и внизу списка (6-м и 27-м "номером"). А что, удобно. Надо взять на вооружение. Каждый найдет то что наилучшим образом совпадет с его т. зр.
Flask, к сожалению, не поддерживает асинхронность и работает лишь под WSGI
Интересно, даже не знал. Flask стабильно работает на ASGI и как по удобству? А то смущает немного пункт в документации, что лучше использовать Quart.
Не понял по 3 минусу, в чём вопрос? Я делаю вот так:
router = APIRouter(prefix="/api/v1")
auth_router = APIRouter() # обычно импортируется из другого файла
router.include_router(auth_router, tags=["auth"])
app.include_router(router) # это уже привязка к приложению
Вкусовщина, но не люблю роутинг через декораторы, поэтому все подобные фреймворки обхожу стороной. Роутинг в Джанге мне приятнее.
На диаграмме сравнения скорости нет фреймворка https://litestar.dev/. Там пишут, что он быстрее FastAPI.
Впервые слышу о данном фреймворке. А он в каком году появился?
Судя по релизам, а уже скоро появится 2 версия, давно.
https://litestar.dev/about/organization.html тут можно почитать, как был Starlite, потом переименовали в Litestar.
Зашёл на их гитхаб, там узнал об идее all contributors, которую они у себя используют ))
Плюсы и минусы FastAPI в 2023