Skip to main content

Flask Installation

Welcome to the first step in your Flask journey! Before you can start building web applications with Flask, you need to set up your development environment. This guide will walk you through the process of installing Flask on your system and preparing everything you need to create your first Flask application.

Prerequisites

Before installing Flask, make sure you have:

  1. Python installed (version 3.7 or newer recommended)
  2. pip (Python package manager) - usually comes with Python
  3. Basic knowledge of using command line/terminal

If you don't have Python installed, visit python.org to download and install the latest version for your operating system.

Understanding Virtual Environments

When developing Python applications, it's best practice to use virtual environments. A virtual environment is an isolated Python environment where you can install packages without affecting your global Python installation.

Why Use Virtual Environments?

  • Project Isolation: Different projects may require different versions of the same library
  • Dependencies Management: Easier to track and manage project dependencies
  • Clean Distribution: Simplifies sharing your project with others
  • Prevents Conflicts: Avoids package version conflicts between projects

Setting Up a Virtual Environment

Let's set up a virtual environment for our Flask project:

On Windows

bash
# Create a project folder
mkdir my_flask_app
cd my_flask_app

# Create a virtual environment
python -m venv venv

# Activate the virtual environment
venv\Scripts\activate

On macOS/Linux

bash
# Create a project folder
mkdir my_flask_app
cd my_flask_app

# Create a virtual environment
python3 -m venv venv

# Activate the virtual environment
source venv/bin/activate

Once activated, you'll notice your command prompt changes to indicate that you're working within the virtual environment. It typically shows the name of the virtual environment in parentheses at the beginning of the prompt.

Installing Flask

With your virtual environment activated, installing Flask is straightforward:

bash
pip install Flask

This command downloads and installs the latest version of Flask and all its dependencies. You should see output similar to:

Collecting Flask
Downloading Flask-2.3.3-py3-none-any.whl (96 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.0/96.0 kB 1.2 MB/s eta 0:00:00
Collecting Werkzeug>=2.3.7
Downloading Werkzeug-2.3.7-py3-none-any.whl (242 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 242.1/242.1 kB 2.8 MB/s eta 0:00:00
Collecting Jinja2>=3.1.2
Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.1/133.1 kB 2.0 MB/s eta 0:00:00
...
Successfully installed Flask-2.3.3 Jinja2-3.1.2 MarkupSafe-2.1.3 Werkzeug-2.3.7 ...

Verifying Your Installation

Let's verify that Flask is installed correctly by checking its version:

bash
python -m flask --version

You should see output similar to:

Python 3.11.4
Flask 2.3.3
Werkzeug 2.3.7

Creating Your First Flask Application

Now that Flask is installed, let's create a simple "Hello, World!" application to confirm everything is working properly:

  1. Create a file named app.py in your project directory with the following content:
python
from flask import Flask

# Create a Flask application instance
app = Flask(__name__)

# Define a route and its handler function
@app.route('/')
def hello_world():
return 'Hello, World! My first Flask application is working!'

# Run the app if this file is executed directly
if __name__ == '__main__':
app.run(debug=True)
  1. Run your Flask application:
bash
python app.py
  1. You should see output similar to:
 * Serving Flask app "app"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 123-456-789
  1. Open your web browser and navigate to http://127.0.0.1:5000/. You should see "Hello, World! My first Flask application is working!" displayed on the page.

Congratulations! You've successfully installed Flask and created your first Flask application.

Installing Additional Flask Extensions

As you build more complex applications, you might need additional Flask extensions. Here's how to install some common ones:

bash
# For working with forms
pip install Flask-WTF

# For user authentication
pip install Flask-Login

# For database ORM
pip install Flask-SQLAlchemy

# For API development
pip install Flask-RESTful

Managing Dependencies with requirements.txt

It's good practice to keep track of your project dependencies. You can create a requirements.txt file to list all packages:

bash
pip freeze > requirements.txt

This creates a file listing all installed packages and their versions. To install these dependencies in another environment:

bash
pip install -r requirements.txt

Troubleshooting Common Installation Issues

Issue 1: "Command not found" errors

Ensure Python is in your PATH environment variable, or use the full path to Python.

Issue 2: Permission errors during installation

On Unix/Linux/macOS, you might need to use sudo pip install Flask or fix permissions. However, using virtual environments is the preferred solution.

Issue 3: Version conflicts

If you encounter dependency conflicts, try installing Flask in a fresh virtual environment.

Issue 4: Flask runs but you can't access the website

Check if the application is running on the expected host and port. By default, Flask runs on 127.0.0.1:5000, but you can modify this by changing the app.run() parameters.

Summary

In this guide, you've learned how to:

  • Set up a Python virtual environment
  • Install Flask using pip
  • Verify your Flask installation
  • Create and run a simple Flask application
  • Install additional Flask extensions
  • Manage project dependencies
  • Troubleshoot common installation issues

Now that you have Flask installed and working, you're ready to dive deeper into Flask development and build more complex web applications.

Additional Resources

  1. Official Flask Documentation
  2. Flask Mega-Tutorial
  3. Python Virtual Environments Documentation

Practice Exercises

  1. Modify Your First App: Change the Hello World message and add a second route that returns a different message.
  2. Environment Exploration: Create a new virtual environment, install a different version of Flask, and observe the differences.
  3. Dependencies Exercise: Install three Flask extensions of your choice and create a proper requirements.txt file.

Happy coding with Flask! In the next section, we'll explore Flask application structure and routing.



If you spot any mistakes on this website, please let me know at [email protected]. I’d greatly appreciate your feedback! :)