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.