2

How to send a raw http header in python just like header() in PHP ?

bandw
  • 869
  • 2
  • 11
  • 29

2 Answers2

1

Pass a list of two-tuples containing the header name and header value to the start_response() function.

Ignacio Vazquez-Abrams
  • 740,318
  • 145
  • 1,296
  • 1,325
1

In Django, you'd be like:

def someview(request):
    # ... etc ...
    out = HttpResponse(outputstring,
        mimetype="text/html",
        status_code="302",
        )
    out['Content-Disposition'] = "attachment; filename=download.html"
    # fill in all your favorite HTTP headers here
    return out

... for cache-control and friends, you need to import a bunch of decorators and wrap your view functions accordingly (I forget which) -- this is because django has a caching system with which many sub-rosa bits of the framework are integrated.

I find the cache stuff confusing, but also nice. non-cache HTTP headers are E-Z.

fish2000
  • 4,159
  • 2
  • 39
  • 70
  • that probably works -- but I know that the django people think that's a bad idea as they redefine sys.stdout and friends. using `print` for headers will probably break at some point. – fish2000 Oct 19 '10 at 21:37