2013-05-19 7 views
17

मैं बोतल में अपनी प्रतिक्रिया का HTTP स्टेटस कोड कैसे सेट करूं?बोतल में 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"} 
+0

बोतल आयात प्रतिक्रिया से 'करता है; response.status = 300' काम? http://bottlepy.org/docs/dev/api.html#bottle.response – dm03514

+1

हां, यह चाल है। धन्यवाद :) –

उत्तर

30

मेरा मानना ​​है कि आप का उपयोग करना चाहिए response

from bottle import response; response.status = 300

12

बोतल के अंतर्निहित -इन प्रतिक्रिया प्रकार स्थिति कोड संभालता है।

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) 
+0

dm03514 का जवाब वह था जिसे मैं ढूंढ रहा था। मेरे कोड में किसी भी बदलाव की आवश्यकता के बिना, मुझे बाद में जो कुछ भी था, उसे देता है ('रिस्पॉन्स' से 'प्रतिक्रिया' के नाम से। –

-1

बढ़ाने स्थिति कोड (200,302,401) दिखाने के लिए HttpResponse के साथ और अधिक शक्ति प्राप्त करने के उपयोग किया जा सकता है: की तरह कुछ पर विचार करें

आप बस यह कर सकते हैं जैसा रास्ता:

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) 
संबंधित मुद्दे