Flask is a popular micro web application framework for Python using which you can create web apps. Unlike another popular framework like Django, Flask keeps its foot print to a minimum providing only the basic functionality required instead of picking out the entire stack for you the way Django does. And we call it a micro framework for this very reason. Using flask's extensibility at the core, you can build any type of applications by picking the components you want to use. Several big name companies like LinkedIn, Pinterest use Flask for their products.
In this tutorial we will get started with using Flask
and create a simple web application with it.
Prerequisites
To follow along with this series you should have some knowledge of Python language. I'm using 3.6
for these tutorials and if you would like to follow along without any issues, I would suggest you to use the same version. For any of the previous versions, there might be a couple of changes in the syntax but the ideas and concepts will remain same.
You will also need to install Flask
. You can do that with pip
.
This will install flask if you don't already have it and update the version to latest if you have a previous version installed.
With those two things, you are good to go.
Getting Started
Just like with anything else you start by importing the stuff you want.
And this will make Flask
ready for you to use. After this you have to create an app
object by calling the Flask
constructor like this:
This will create our app
object. The name hello
I've specified in the constructor can be anything. But the usual convention is to keep it __main__
. Also, the app is just a variable. So, you can name it anything you want.
Next you have to define the routes. Using routes you configure your server to do different actions. Let's say when you type in some website URL in to your browser, you will be taken to its home page. Now if you do a <website>/info
it will take you to the info page. So, this mapping of the call to /info
URL to the info
page is what we call as a route. For the home page the route is simply /
.
Let's say we want our server's homepage to display Hello World
. You can configure that with a method like this:
@app.route('/')
def index():
return "Hello World"
With the @app.route('/')
, we are defining a route on our server. So, when ever somebody opens that route, which for us i the homepage, the index()
method associated with that route annotation will be called. And when the index()
method is called it will return Hello World
just as we expect it to.
And there is one final command to start and run our server which is:
And that's it. This will run the app that we have created when you run the python file. The debug=True
option is useful while developing and testing applications. So, we'll keep that for now.
Just run your python script and you should output like this on the console:
* Debugger is active!
* Debugger PIN: 127-398-124
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Now If you go to http://localhost:5000, you can see Hello World
displayed.
That's it. You have successfully created your first web application with flask in just 3 lines of code. Now, that is awesome. Stay tuned for the next part.
That is all for this article.
For more programming articles, checkout Freblogg Freblogg/Python
Some articles on automation:
Web Scraping For Beginners with Python
My semi automated workflow for blogging
Publish articles to Blogger automatically
Publish articles to Medium automatically
This is the 21st article as part of my twitter challenge #30DaysOfBlogging. Nine more articles on various topics, including but not limited to, Java, Git, Vim, Software Development, Python, to come.
If you are interested in this, make sure to follow me on Twitter @durgaswaroop.
If you are interested in contributing to any open source projects and haven't found the right project or if you were unsure on how to begin, I would like to suggest my own project, Delorean which is a Distributed Version control system, built from scratch in scala. You can contribute not only in the form of code, but also with usage documentation and also by identifying any bugs in its functionality.
Thanks for reading. See you again in the next article.