Setting HTTP status code in Bottle?
18,879
Solution 1
I believe you should be using response
from bottle import response; response.status = 300
Solution 2
Bottle's built-in response type handles status codes gracefully. Consider something like:
return bottle.HTTPResponse(status=300, body=theBody)
As in:
import json
from bottle import HTTPResponse
@route('/')
def f():
theBody = json.dumps({'hello': 'world'}) # you seem to want a JSON response
return bottle.HTTPResponse(status=300, body=theBody)
Author by
Foo Stack
Updated on June 15, 2022Comments
-
Foo Stack about 2 years
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"}