I agree that, should a system get significantly complex, eventually you will want Django; but a lot of projects simply never get there. That's why it's good to have a choice anyway.
E.g : sqlalchemy sessions are very often badly handled. Of course you could write sql by hand, but then you loose the entire ecosystem of blueprints.
Blueprints for models?
Relatively few lines of code that comes with validation, API playground, and defined routes plugged in via the swagger doc.
The main I ssue is having a nice admin page, tbh. Flask doesn’t have one like Django but eh. Good enough I suppose.
You see because flask is so minimal, many beginers use it for an easy start, only to rewrite square wheels when the project gets real.
When using flask, you have to be able to make decisions about those. Many devs are not able to.
I'm ok with it: not everybody has to be an expert to be a great element in a company. But flask gives those profile a false sense of easiness.
> But flask gives those profile a false sense of easiness.
It allows you to prototype very fast, not everyone needs nor wants the hand-holding that django provides.
Don't get me wrong I think django is fantastic at what it gives out of the box but saying that flask is insecure is just fud.
Also - try Pyramid, you'll never know when it suits your needs https://trypyramid.com/
I actually always say that despite the apparent easiness of the micro framwork hello world, you have to actually be very skilled to use them correctly to do anything beyong a few pages. While a full feature framework will make a beginer produce a decent work by default.