python http http-headers bottle

python - ¿Configurando el código de estado HTTP en Bottle?



http-headers (3)

¿Cómo configuro el código de estado HTTP de mi respuesta en 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()))

Como puede ver, la salida no devuelve el código de estado HTTP que establecí:

$ 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"}


raise se puede usar para obtener más poder con HTTPResponse para mostrar el código de estado (200,302,401):

Al igual que puedes hacerlo de esta manera:

import json from bottle import HTTPResponse response={} headers = {''Content-type'': ''application/json''} response[''status''] ="Success" response[''message'']="Hello World." result = json.dumps(response,headers) raise HTTPResponse(result,status=200,headers=headers)



El tipo de respuesta incorporado de la botella maneja los códigos de estado con gracia. Considera algo como:

return bottle.HTTPResponse(status=300, body=theBody)

Como en:

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)