Ответ 1
Я считаю, что вы должны использовать response
from bottle import response; response.status = 300
Как установить код состояния HTTP моего ответа в "Бутылке"?
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()))
Как вы можете видеть, вывод не возвращает код состояния HTTP, который я установил:
$ 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"}
Я считаю, что вы должны использовать response
from bottle import response; response.status = 300
Тип встроенного ответа бутылки грациозно обрабатывает коды состояния. Рассмотрим что-то вроде:
return bottle.HTTPResponse(status=300, body=theBody)
Как в:
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)
Как вы можете просто так:
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)