Updated April 19, 2023
Definition of Flask in Python
Flask in Python is defined as a framework that is leveraged by developers to develop a web application with the baseline of development of the framework being Werkzeug WSGI toolkit and Jinja2 template engine, both being Pocco projects. Pocco is an international group of Python enthusiasts which is led by Armin Ronacher. A framework is like a library consisting of boilerplate codes which assist the developer to build scalable, reliable, and easy to maintain the application. Another terminology that will be frequently used here is API, a definition of which we will see in later sections but we need to keep in mind that flask is utilized for creating the application which will be used for creating the API.
Why do we need Flask in Python?
Before we talk about the working of Flask in python, we need to understand why we need Flask in Python in the first place. Flask, as created by a group of international python enthusiasts is an open-source platform that is built with rich features for web development to develop all kinds of web applications. Here we will talk about the features which push us for the need of Flask in python.
- Flask is a framework that is built keeping in mind the extensibility in python, which means that that style of the framework that is used focuses on providing a mechanism that enhances extending the framework and the environment. This allows the framework to be very lightweight and modular in comparison to some full-stack frameworks. And hence in other terms, it is known as a “micro-framework”.
- With the capability that Flask provides, it is easier for a developer to debug quickly thus enhancing and accelerating the development of an application.
- In addition to debugging, little boilerplate coding styles are also a key characteristic that ensures the need for Flask in python to develop web applications, especially for beginners.
- In case one needs to integrate the web application into Google, one can’t thank Flask enough because of its compatibility with the Google app engine.
- One needs Flask for its highly secure capability feature!
How does Flask work in Python?
Now that we know the need for Flask, let us take a deep dive into the working of Flask in python in this section. But before we understand the core working, let us take an example of a simple program, which is used in many places for explaining Flask.
Creating a basic Flask application
While building web applications using Flask, we would need to first create a new directory that will a place to store the project components. Inside that, we would need to create another folder that will contain the main.py. Now, we need to create a python file inside this folder and copy the code mentioned in the examples section.
Running the application
Now we are at a position where we can run the application by executing:
We can see how the output will look like (in the example). Now it is time for us to talk about what flask does in the piece of code mentioned and understanding the working of Flask. Flask at first maps the HTTP request we execute with the API link to the python function. During mapping, it will look for the URL using the annotation app. route, which for example will be “/” in our example code. When the mapping happens, it will also take care of the method that is getting mapped. The method available in API is GET or POST. In this example, the method is GET. Now the URL path is mapped to the function baseFunc in the example. When we enter flask server details along with/in a web browser, flask will run the set of codes inside the function to which the URL is mapped, which in this case is baseFunc, and return the output in the page to be displayed. This method of mapping URLs with the function is known as routing.
The method used here is GET, which means that the data will be sent from an application to the user. Like the one in the example where the return statement in the application is showed on the website. The other available method is POST, where it is about getting data from the user. Using different app routes one can build multiple APIs thus helping in building a website in accordance with the requirements!
Advantages and disadvantages
Nothing is perfect in this world. With great features comes a lot of advantages but in addition, can miss out on some features which might prove disadvantageous. Let us look at the pros and cons of Flask in python in detail in this section.
- Easy to learn and understand: Flask development framework provides a platform that is very simple for beginners to understand. This simplicity allows developers to navigate around, experiment, and develop applications easily.
- Flexibility: With Flask, the developer is in the driver’s seat in having the full creative control and thus provides flexibility to add external features. In addition to that only a few parts of the flask are restricted to change or alteration.
- Ease of Testing: With integrated support, fast debugging feature, built-in development server in place for Flask, it allows a developer to perform unit testing with ease.
- Deployment: Deployment using Flask is very comfortable as Flask is 100% WSGI (a convention followed for web servers) 1.0 compliant.
- ORM integration: Using Flask, one can easily integrate ORM to map object parameters to an RDBMS table.
- Scalability: When it comes to handling requests, Flask handles request one request at a time. Naturally, multiple requests will take more time.
- Involvement of 3rd party: With the involvement of the 3rd party in module development there is a major risk of a security breach in case of inclusion of malicious module.
- Development required: With flask being bare bone, which might be a pros in terms of learning and flexibility, can turn out to be cons as developers might have to practically build everything.
import flask url = flask.Flask(__name__) url.config["DEBUG"] = True @url.route('/', methods=['GET']) def baseFunc(): return "<h1>FLASK IN PYTHON</h1><p>A prototype to showcase the flask utility in Python.</p>" url.run()
In this article, we have got a flavor of deep dive in the utility of the framework and see the working of the same so as to encourage readers to develop web applications. Also, it is not just a flask application, but the inclusion of elements from authentication, cross-origin resource sharing, extensive testing, etc. which would make a better application!
We hope that this EDUCBA information on “Flask in Python” was beneficial to you. You can view EDUCBA’s recommended articles for more information.