GitHub Repository

You can find the project source code on GitHub.

This quickstart uses django but you can easily adapt it to Flask, FastAPI or plain Python, see Vercel Python Templates.

Project Setup

Let’s create a new django application from Vercel’s template.

npx create-next-app vercel-django --example "https://github.com/vercel/examples/tree/main/python/django"
cd vercel-django

Database Setup

Create a Redis database using Upstash Console or Upstash CLI and export 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>

Environment Setup

Update requirements.txt to include upstash-redis.

requirements.txt
Django==4.1.3
upstash-redis

We will create a Conda environment with python version 3.12 to match Vercel Python Runtime and avoid conflicts on deployment, you can use any other environment management system.

conda create --name vercel-django python=3.12
conda activate vercel-django
pip install -r requirements.txt

View Setup

Update /example/views.py:

/example/views.py
from datetime import datetime

from django.http import HttpResponse

from upstash_redis import Redis

redis = Redis.from_env()

def index(request):
    count = redis.incr('counter')
    html = f'''
    <html>
        <body>
            <h1>Counter: { count }</h1p>
        </body>
    </html>
    '''
    return HttpResponse(html)

Run & Deploy

Run the app locally with python manage.py runserver, check http://localhost:8000/

Deploy your app with vercel

Set UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN in your project’s Settings -> Environment Variables. Redeploy from Deployments tab.

You can also integrate your Vercel projects with Upstash using Vercel Integration module. Check this article.