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