Recs.
Updated
SpecsUpdate
Pros
Pro Minimalist without losing power
Flask is very easy to get up and going, with vanilla HTML or with bootstrap pieces. It doesn't take much lines of python to load Flask to get headers working, etc, and since it's all modular you don't have to have something you don't want in your application. Each module within Flask works very well, and is extremely good on bandwidth and CPU usage.
Pro Very flexible
The choice of not having an ORM, but instead choosing one suited to the task, gives developers who use Flask a great deal of flexibility. Another area where Flask gives a lot of options to developers is the templating. They can use Jinja2, Flask's default templating language or choose from a number of different templating languages they desire.
Pro Lots of plugins
Minimal frameworks usually give the developer a lot of space and flexibility. But with that comes the responsibility of having to code every part of the application yourself, if you get stuck somewhere you are on your own usually. Fortunately, this is not the case for Flask.
Because it's very popular and as a relatively large following there are a lot of third-party libraries and plugins available for it. So if you want to save time or if you don't know how to solve a particular problem chances are that someone has already made a library for that.
Pro Lots of resources available online
Flask is one of the most popular Python web frameworks, if not the most popular one. As such, there's plenty of guides, tutorials, and libraries available for it. A large number of important Python libraries, such as SQLAlchemy have libraries for Flask, which add valuable bindings to make the development process and the integration between these libraries and Flask as easy as possible.
Pro Extremely easy to build a quick prototype
Even though it's pretty minimalistic out of the box, Flask still provides the necessary tools to build a quick prototype for a web app right after a fresh install. With all the main components pretty much packed in the flask
package, building a simple web app in a single Python file is as easy as it gets.
Cons
Con Setting up a large project requires some previous knowledge of the framework
Setting up a large project with Flask is not that easy considering how there's no "official" way of doing it. Blueprints are a useful tool in this regard but require some additional reading and are a bit tricky to get right for a beginner.
The lack of some defaults can also be problematic. Having to choose between different libraries for a certain task is never easy, especially if you have never worked with Flask before.
Con Not async-friendly
Flask is explicitly not designed to handle async programming.