Предпочитаю Django. Flask, Fastapi и прочие фреймворки где роутинг реализован через декораторы не люблю главным образом за это. Оно может и выглядит "прикольно", но не практично нифига. В джанге если я переиспользую сторонний модуль, у которого есть свои роуты, я могу его роуты легко переопределить не модифицируя чужой код.

Для полноценного веб приложения микрофреймворки типа flask и fastapi смысла особого не имеют, один фиг придётся подключать 100500 сторонних модулей чтобы было всё необходимое, там и шаблонизатор, и орм и куча всего, в итоге один фиг будешь велосипедить свою джангу из кучи сторонних модулей. При этом джанга и так более менее имеет минимум необхоимого.

А flask и fastapi имеет смысл лишь рассматривать в случае если разрабатываешь какие-то апишки, при этом тебе нужно сэкономить 100МБ места на диске. Иначе только трата времени зря.

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