HTTP headers view decorator

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
def headers(h):
    """Decorator adding arbitrary HTTP headers to the response.

    This decorator adds HTTP headers specified in the argument (map), to the
    HTTPResponse returned by the function being decorated.

    Example:

    @headers({'Refresh': '10', 'X-Bender': 'Bite my shiny, metal ass!'})
    def index(request):
        ....
    """
    def headers_wrapper(fun):
        def wrapped_function(*args, **kwargs):
            response = fun(*args, **kwargs)
            for k,v in h.iteritems():
                response[k] = v
            return response
        return wrapped_function
    return headers_wrapper

More like this

  1. Header view decorators by ydm 1 year, 1 month ago
  2. HTTP basic auth decorator by bthomas 5 years, 2 months ago
  3. view by view basic authentication decorator by Scanner 6 years, 11 months ago
  4. Ajax required decorator by zenx 5 years, 11 months ago
  5. django ajax_view decorator by chizcracker 1 year, 11 months ago

Comments

jacobian (on June 10, 2007):

Neat trick! You could make it a bit slicker by declaring headers as def headers(**h) and then munging underscores to dashes. That would let you do:

@headers(Refresh=10, X_Fry="It's like a party in my mouth and everyone's throwing up.")

#

(Forgotten your password?)