DEV Community

Cover image for How to Create a Simple Web App with Python and Flask in 8 Easy Steps
Krishnanshu Rathore
Krishnanshu Rathore

Posted on

How to Create a Simple Web App with Python and Flask in 8 Easy Steps

Creating a web app using Python and Flask is a fun and rewarding project that can help you learn web development skills and showcase your creativity.

In this article, I will show you how to create a simple web app that displays HTML text on the browser, using Flask as the web framework and Python as the programming language.

Flask is a lightweight and extensible Python web framework that provides useful tools and features for creating web applications. It gives developers flexibility and is an accessible framework for new developers because you can build a web application quickly using only a single Python file.

Flask is also easy to install and run, and supports various extensions to add more functionality to your web app.

To create a web app using Python and Flask, you will need the following:

  • A local Python 3 programming environment. You can follow the tutorial for your distribution in How To Install and Set Up a Local Programming Environment for Python 3 series.

  • An understanding of basic Python 3 concepts, such as data types, lists, functions, and other such concepts.

  • An understanding of basic HTML concepts.

  • A text editor or an IDE (Integrated Development Environment) of your choice to write and edit your code.

The steps to create a web app using Python and Flask are as follows:

Install Flask using pip, the package installer for Python. You can do this by running the following command in your terminal:

pip install flask
Enter fullscreen mode Exit fullscreen mode

Create a project directory for your web app. You can name it anything you like, but in this tutorial we will call it flask_app.

In your project directory, create a Python file and name it app.py. This will hold all the code for your web app.

In your app.py file, import the Flask class from the flask module:

from flask import Flask
Enter fullscreen mode Exit fullscreen mode

Create an instance of the Flask class and pass it the name of the current module (__name__) as an argument. This will create a Flask object that represents your web app:
app = Flask(__name__)

Define a route for your web app using the @app.routedecorator. A route is a URL path that maps to a function that handles what happens when a user visits that URL.

For example, if you want to display a welcome message on the home page of your web app, you can define a route for / (the root URL) and write a function that returns the message as HTML text:

@app.route("/")
def main():
    return "<h1>Welcome to my web app</h1>"
Enter fullscreen mode Exit fullscreen mode

Run your web app using the app.run() method. This will start a local server that hosts your web app on your machine. You can also pass some optional arguments to this method, such as debug=True to enable debug mode, which allows you to see error messages and reload changes automatically:

if __name__ == "__main__":
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

Now run your program, open your browser and go to http://localhost:5000/ or http://127.0.0.1:5000/ to see your web app in action. You should see something like this:

Image description

Congratulations! You have created your first web app using Python and Flask.

You can now modify your code to add more routes and functions to handle different requests from users. You can also use templates to render dynamic HTML pages using variables, loops, conditions, and other Python concepts. You can also use databases to store and retrieve data for your web app.

To learn more about how to use Flask features and extensions, you can check out these resources:

  1. How To Make a Web Application Using Flask in Python 3

  2. Flask Documentation

I hope this article was helpful and informative for you.

Top comments (6)

Collapse
 
sergeyleschev profile image
Sergey Leschev

Certainly! One of the advantages of creating a web application using Python and Flask is that it can be customized to perform specific tasks based on the user's needs. For example, the web app could be used to gather user input and store it in a database, or it could be used to generate dynamic content based on user requests. It could also be used to create a simple e-commerce platform or to display data in a user-friendly format. The possibilities are endless, and the simplicity of the Python-Flask combination allows for quick prototyping and experimentation. So not only is it a useful tool for learning web development, but it also has practical applications in a variety of contexts.

Collapse
 
onecuriousmindset profile image
Krishnanshu Rathore

Thank you for your insightful comment. I totally agree that Python and Flask are a great combination for creating web applications that can be tailored to specific needs and scenarios and I appreciate how you gave some examples. I think these are all valuable skills to have in the modern web development landscape.

Collapse
 
__masashi__ profile image
Masashi

Flask is a great framework. However, it isn't the most performant especially due to the lack of async/await. Maybe you can try using Quart. It is by the same group (Pallets) that made Flask and is compatible with Flask. You can check it out.

Collapse
 
onecuriousmindset profile image
Krishnanshu Rathore

Thank you for your suggestion. I agree that Flask has some limitations when it comes to performance and concurrency. I have heard of Quart before, but I have not tried it yet. I will definitely check it out and see how it compares to Flask. Maybe I will even write a tutorial on Quart in the future.

Thread Thread
 
__masashi__ profile image
Masashi

Yeah sure. It may even introduce to a completely new world of ASGI.

"Quart is an asyncio reimplementation of the popular Flask microframework API. This means that if you understand Flask you understand Quart."

Quoting from Quart documentation.
I think that it'll be easy for you to pickup Quart since you are well versed with Flask.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.