How to Create a Simple Web App with Python and Flask in 8 Easy Steps
Tags: python, webdev, beginners, programming
Published: 2023-03-23 12:25:28

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.](https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming-environment-on-ubuntu-20-04)

- 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
```

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
```

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.route `decorator. 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>"
```
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)
```
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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lop3wo25azuf46ojm1me.png)

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](https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3)

2. [Flask Documentation](https://flask.palletsprojects.com/)

I hope this article was helpful and informative for you.