Pull to refresh

Comments 23

Flask уже апологет. Но фаст апи норм движется. Обрастет скоро всем, что нужно. Вопрос времени.

по сравнению с Django (использует MVC), в котором проект часто превращается в странную субстанцию из папок в папках

Тут вообще не понял. В 2023 появились какие-то другие способы организации проектов?

Что чистая архитектура? У вас куда-то исчезнут файлы с директориями? Что за решение, какую пользу оно даёт, как это выглядит?

А что непонятного про структуру джанго? Ты не можешь ее изначально менять, ты должен ее придерживаться. В FastAPI же можешь писать, как хочешь, что тебя не ставит в какие-либо рамки.

Фокус был на "странная субстанция из папок в папках". Вы в фастапи где файлы храните? Не в папках? А в чём? И почему вы уверены, что для внешнего наблюдателя ваша организация файлов в фастапи не будет выглядеть некоей субстанцией?

Сравните изначальный темплейт Джанго и ФастАПИ и скажите на каком намного проще и быстрее начать писать новичку. Я не думаю, что наличие одного main.py, да и папки models выглядит также непонятно, как начальный проект в Django.

"и скажите на каком намного проще и быстрее начать писать новичку" вот как раз новичкам нужна структура как в Django, иначе всё плохо будет, еще со времен Flask это проверенно, ну не могут они сразу, без опыта, нормально это сделать.

Ну как говорится, что кому ближе. Я лично начинал с Фласка и мне он понравился больше Джанго, но тут все зависит опять же от личных предпочтений.

Когда приходишь на Django-проект ты примерно представляешь чего ожидать: модели, роутинг, вьюшки, DRF... Все проекты же на FastAPI/Flask - кардинально отличаются друг от друга. Там может быть как разбиение функционала с выделением доменов (ха-ха, как в Django), так и просто месиво из моделей, валидаторов, ендпоинтов и пр.

С гибкостью фреймворков приходит и большая ответственность. Так что напоследок риторический вопрос: а вы уверены, что знаете как правильно разбивать проект на модули лучше, чем тысячи разработчиков, которые пишут на Django?

В скрине бенча от TechEmpower фреймворк Tornado представлен дважды - вверху и внизу списка (6-м и 27-м "номером"). А что, удобно. Надо взять на вооружение. Каждый найдет то что наилучшим образом совпадет с его т. зр.

На самом сайте можно просмотреть подробности каждого "испытуемого". В частности, Торнадо с 6 строчки использует uvloop. Тогда как Торнадо с 27 строчки его не использует (или он не указан) и указан pypy2, вместо py3 с 6 строчки. Разные тесты и компоненты.

на django больно смотреть

Интересно, даже не знал. Flask стабильно работает на ASGI и как по удобству? А то смущает немного пункт в документации, что лучше использовать Quart.

Эту фичу в 2021 году добавили. Те роуты, которые надо сделать асинхронными можно сделать асинхронными, а какие-то роуты сделать обычными.

Мне кажется в большинстве случаев, асинхронность не очень то и нужна.

Деплоил обычным nginx + gunicorn + gevent

Не понял по 3 минусу, в чём вопрос? Я делаю вот так:

router = APIRouter(prefix="/api/v1")
auth_router = APIRouter()  # обычно импортируется из другого файла
router.include_router(auth_router, tags=["auth"])

app.include_router(router)  # это уже привязка к приложению

Я делаю точно также, но я в том плане, что нельзя изменить сразу через root_path корневой путь. Вам все равно также придется переписывать пути на OpenAPI документацию и т.д., чтоб они не были доступны по /docs, /redoc, /openapi.json.

Вкусовщина, но не люблю роутинг через декораторы, поэтому все подобные фреймворки обхожу стороной. Роутинг в Джанге мне приятнее.

Впервые слышу о данном фреймворке. А он в каком году появился?

Sign up to leave a comment.

Articles