Flask is technically open source. I used the word "technically" since it is actually BCD Licensed.



What BCD Licensed means is that a person can do anything or build anything with flask as long as the original copyrights in Flask stick around along whatever was built.



When we talk about what Flask framework actually is, it will suffice to say that:



“Flask is a micro framework for Python based on Werkzeug, Jinja 2 and good intentions”



This definition is taken from Flask's official website. And yes it actually says “good intentions”.

In this blog, I will guide you through exactly what these good intentions are. Ready? Then let’s get started.



As an overview, following are the main features you receive when you choose Python Flask:

Minimalistic Approach.

The least amount of coding as compared to other frameworks.

No ORM in the delivery.

A debugger built right into the browser.

Let’s move on to the main course.

Flexible Project Layouts

When we compare the applications developed by Python flask to applications which are developed using other technologies, we see prominent superiority of flask application’s flexibility.

Flask framework enables a programmer to do a lot more and make a lot more decisions in the custom way he or she desires. This reduces or mitigates a number of problems that arise due to the rigidity of project layout in other frameworks.

The number of ways a Python Flask framework code can be organized is roughly equal to the number of applications written by developers in Flask. This is the level of flexibility it provides to software engineers.

View Layer

When it comes to the view layer, Python Flask supports:

Function-Based Views

HTTP methods restriction

View Decorators

Class-based Views

In flask apps, the flask module comes from where the request object is imported. It acts as a global variable. This makes it more convenient than forwarding a variable deep inside a widget. Remember, I said acts as a global variable… which only makes it more useful when you need it to act differently.

Result: Flask is an excellent framework for processing requests.

Model Layer

Flask does not have an ORM of its own but is configurable with SQLAlchemy and peewee. Flask framework gives you the freedom to choose an ORM you want.

The minimalism of flask also helps when developers are setting up a custom ORM. The flexibility of Flask also comes in handy at such times.

Routing

In Python Flask, you have the option of a centralized configuration or what you can do is use the view detector.

Let’s take a look at a Python flask Example:

The routing module, before matching URI with patterns, from Werkzeug sorts them according to complexity in ascending order. In this way, we can receive the explicit bypass with:

flask.Flask.uri.map

As a result, Flask offers a sufficiently flexible URI extraction also the URI bypass process is not so critical when you are working with Flask.

Template Layer

When it comes to templates Python Flask supports

Templateless Responses

Context Processors

Jinja2 templates

Situations When Python Flask should Be Your First Preference

There are more than enough situations but here are the most common ones:

When there is need of integrating with an existing complex backend system Flask is the champion.

A complex web application utilizing ingenious SQL queries. Flask framework will save the day.

If you are a beginner trying to understand how to work in web development and how things are arranged in an ERP. In this case, Python Flask should be your first step.

Going Full Throttle With Python Flask?

If you have decided to dive a little deeper into learning Python Flask framework then here are a few Python Flask examples we have worked with using Celery, which is an asynchronous task queue/job queue based on distributed message passing.

PYTHON FLASK CELERY + DOCKER

PYTHON FLASK CELERY + ELK