Flask and the other web frameworks besides Django are lower-level (sometimes called micro) frameworks. This means they are mainly meant to provide only the bare minimum of tools to get your website running. The underlying system of logic, design, and organization is done almost entirely by the developer from this point.
Django provides the underlying connections to make a website actually run, but also provides the developer with a plethora of tools and systems to aid in the background.
Flask is more open-ended to unique systems. A developer can create a backend system just about however they want, but they are likely to not use best-practices this way. Django is more closed off, encouraging the developer to do things the "Django way." While this can feel restrictive, it also means the developer is more likely to do things correctly, right out of the gate.
In the end, both Django and Flask can make the exact same websites, as well as being as customize-able and as high quality as the other. This website, for example, is a Flask website, but could just as easily be a Django site.
The best choice is to make an attempt at both, and see which suits you best.