Setting Up a Flask Application

Flask is a lightweight and flexible web framework for Python that makes building web applications simple and efficient. In this tutorial, we will go through the step-by-step process of setting up a Flask application from scratch.


1. Installing Flask

Before starting, ensure that Python is installed on your system. You can check this by running:

python --version

or

python3 --version

Now, install Flask using pip:

pip install Flask

2. Creating a Basic Flask App

Once Flask is installed, create a new directory for your project and navigate into it:

mkdir flask_app
cd flask_app

Inside this directory, create a Python file (e.g., app.py) and add the following code:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Welcome to Your First Flask App!"

if __name__ == '__main__':
    app.run(debug=True)

Explanation:

  • We import the Flask class.
  • We create an instance of the Flask application.
  • The @app.route('/') decorator defines a route for the homepage.
  • The home() function returns a simple message.
  • app.run(debug=True) runs the application in debug mode.

3. Running the Flask Application

To start your Flask app, run:

python app.py

or

python3 app.py

You will see output similar to:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Now, open your browser and visit http://127.0.0.1:5000/. You should see "Welcome to Your First Flask App!" displayed on the page.


4. Project Structure

As your Flask project grows, organizing your files becomes crucial. A common structure is:

flask_app/
│── app.py
│── templates/
│   ├── index.html
│── static/
│   ├── style.css
│── requirements.txt
  • templates/ → Stores HTML files.
  • static/ → Stores CSS, JS, images, etc.
  • requirements.txt → Lists dependencies (pip freeze > requirements.txt).

5. Creating a Simple HTML Template

Flask supports Jinja2 templating. Let's create a templates folder and an index.html file inside it:

<!DOCTYPE html>
<html>
<head>
    <title>My Flask App</title>
</head>
<body>
    <h1>Welcome to Flask!</h1>
</body>
</html>

Modify app.py to render this HTML:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

Now, reload http://127.0.0.1:5000/, and you’ll see your HTML page!


6. Running Flask with a Virtual Environment (Optional)

To keep your project dependencies organized, you can use a virtual environment:

python -m venv venv
source venv/bin/activate  # On macOS/Linux
venv\Scripts\activate     # On Windows
pip install Flask

This ensures Flask is installed only for this project.


Conclusion

You have successfully set up a basic Flask application! In the next tutorials, we will explore routing, handling user inputs, working with databases, and more. Stay tuned!