Heres a cute little pattern I threw together when writing sixpack. Im assuming youre using Werkzeug, but you could do the same thing with Flask, or pure WSGI.

First step is to write a little decorator that youre going to decorate your route handlers with. Its pretty straight forward. Here I used the decorator package to simplify things, but you can just do it in pure python if you dont need the additional dependency.

import decorator

from redis import ConnectionError

def service_unavailable_on_connection_error(f, *args, **kwargs):
    return f(*args, **kwargs)
except ConnectionError:
    return json_error({\"message\": \"redis is not available\"}, None, 503)

Its simply going to try to run the method you decorated, and catch a Redis ConnectionError. You could do this for any datastore, or anything else thats prone to complete failure. In this example, json_error() is a simple helper method that returns a JSON response with the correct Content-Type, status, etc. headers.

Then, in your server you can have something like this:

def __init__(self, redis_conn):
    self.redis = redis_conn

    self.url_map = Map([
        Rule(/_status, endpoint=status),

… more werkzeug boilerplate

def on_status(self, request):
    return json_success({version: __version__}, request)

If throws ConnectionError the decorator will catch it, and return the failing JSON. So, like the title says, nothing groundbreaking, but cute and might save you a few lines.