Understanding Middleware§

Overview of Middleware§

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

Middleware Hooks§

Typical Uses§

Middleware Example§

class LocaleMiddleware(object):

    def process_request(self, request):

        if 'locale' in request.cookies:
            request.locale = request.cookies.locale
        else:
            request.locale = None

    def process_response(self, request, response):

        if getattr(request, 'locale', False):
            response.cookies['locale'] = request.locale

Request Middleware§

Response Middleware§

Writing Your Own§

WSGI Middleware§