Flask is a Python micro-framework well suited for web application and RESTful API projects. Unlike large development frameworks like Django, Flask is lightweight and does not include a pre-built Admin interface, HTML templating system, or database ORM. This makes it a much more agile choice for projects that do not or cannot take advantage of a larger framework. This can make a smaller project much faster to develop while still organizing development efforts across a team.
If you are looking to use a database that is not supported by Django, like MongoDB, Flask may be an excellent fit. Even databases like MySQL can take advantage of Python packages like SQLalchemy to work more smoothly with Flask than Django’s ORM which is primarily designed for PostgreSQL.
Flask gives you a lighter, more agile starting point to begin your development efforts without fighting against the design decisions that have gone into a larger framework. You can pick and choose your project’s components freely and not get locked into a set of features your project can’t use.
Flask lacks a lot of the premade components included with a framework like Django. If you want a basic Admin interface with tools for adding users and populating a basic database, Flask will require some extra work.