Introduction

In this quickstart tutorial, we will explore how to use Flask with Upstash Redis to build a simple web application that increments a counter each time a user accesses the homepage.

Environment Setup

First, install Flask and the Upstash Redis client for Python.

pip install flask
pip install upstash-redis

Database Setup

Create a Redis database using Upstash Console or Upstash CLI and export the UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN to your environment.

export UPSTASH_REDIS_REST_URL=<YOUR_URL>
export UPSTASH_REDIS_REST_TOKEN=<YOUR_TOKEN>

You can also use python-dotenv to load environment variables from your .env file.

Application Setup

Create app.py:

app.py
from flask import Flask
from upstash_redis import Redis

app = Flask(__name__)

redis = Redis.from_env()

@app.route('/')
def index():
    count = redis.incr('counter')
    return f'Page visited {count} times.'

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

Running the Application

Run the Flask app locally:

python app.py

Visit http://127.0.0.1:5000/ in your browser, and you will see the counter increment with each refresh.

Code Breakdown

  1. Redis Setup: We first import Flask and the Upstash Redis client. Using Redis.from_env(), we initialize the connection to our Redis database using the environment variables exported earlier.
  2. Increment Counter: Each time the root route (/) is accessed, Redis increments the counter key. This key-value pair is automatically created in Redis if it does not exist, and its value is incremented on each request.
  3. Display the Count: The number of visits is returned in the response as plain text.