When comparing ASP.NET MVC vs Flask, the Slant community recommends Flask for most people. In the question“What are the best backend web frameworks?”Flask is ranked 4th while ASP.NET MVC is ranked 13th. The most important reason people chose Flask is:

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.

Pros

Pro

Mature

The framework has many build-in tools, and many packages have been written targeting the framework.

Pro

Cross platform

.Net Core can work on any platform.

Pro

Extensive documentation

There are a lot of resources available to get help.

Pro

Widely used

It's pretty easy to find a job with it and there's plenty of documentation and tutorials around.

Pro

Asp.NET core provides balance between magic/agility and craftsmanship

You can get ordinary details quickly but with complete freedom to make your craft, knowing everything that is happening underneath the cloths. The highly modular system makes it possible to scale small applications to large ones with ease.

Pro

Fast

Asp.NET Core on Linux is fast accordingly to TechEmpower benchmarks.

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.

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

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.

Pro

Very flexible

Flask gives developers a lot of flexibility in how they develop their web applications.

For example, the choice of not having an ORM, but instead choosing one suited to the task, or 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

Great documentation

The official documentation is very thorough and complete. Everything is explained in-depth and followed by extremely well-explained tutorials that tackle real-world problems.

Cons

No cons yet!

Con

Not async-friendly

Flask is explicitly not designed to handle async programming.

Con

Threadlocals and globals used everywhere

The default way of creating applications in flask makes it hard to use reusable and clean code.

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.