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)
Creo que deberías estar usando la bottlepy.org/docs/dev/api.html#bottle.response
from bottle import response; response.status = 300
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)