Setting HTTP status code in Bottle?

Foo Stack picture Foo Stack · May 19, 2013 · Viewed 17.7k times · Source

How do I set the HTTP status code of my response in Bottle?

from bottle import app, run, route, Response

@route('/')
def f():
    Response.status = 300 # also tried `Response.status_code = 300`
    return dict(hello='world')

'''StripPathMiddleware defined:
   http://bottlepy.org/docs/dev/recipes.html#ignore-trailing-slashes
'''

run(host='localhost', app=StripPathMiddleware(app()))

As you can see, the output doesn't return the HTTP status code I set:

$ curl localhost:8080 -i
HTTP/1.0 200 OK
Date: Sun, 19 May 2013 18:28:12 GMT
Server: WSGIServer/0.1 Python/2.7.4
Content-Length: 18
Content-Type: application/json

{"hello": "world"}

Answer

dm03514 picture dm03514 · May 19, 2013

I believe you should be using response

from bottle import response; response.status = 300