Pregunta

¿Cómo hago para devolver datos JSON desde un controlador de solicitudes botella. Veo un método dict2json en el src botella, pero no estoy seguro de cómo usarlo.

¿Qué hay en la documentación:

@route('/spam')
def spam():
    return {'status':'online', 'servertime':time.time()}

Me da esto cuando aparezca la página:

<html>
    <head></head>
    <body>statusservertime</body>
</html>
¿Fue útil?

Solución

Simplemente devolver un dict. manijas de botella de la conversión a JSON para usted.

  

Incluso se permiten los diccionarios. Ellos se convierten en JSON y volvieron con Content-Type juego de cabecera en application / json. Para desactivar esta característica (y pasar dicts al middleware) se puede establecer bottle.default_app (). Autojson en Falso.

@route('/api/status')
def api_status():
    return {'status':'online', 'servertime':time.time()}

la documentación.

http://bottlepy.org/docs/stable/api. html #-la botella de clase

Otros consejos

Por alguna razón, función de auto-JSON de botella no funciona para mí. Si no lo hace el trabajo para usted tampoco, se puede usar el decorador:

def json_result(f):
    def g(*a, **k):
        return json.dumps(f(*a, **k))
    return g

También es práctico:

def mime(mime_type):
    def decorator(f):
        def g(*a, **k):
            response.content_type = mime_type
            return f(*a, **k)
        return g
    return decorator

return {'status':'online', 'servertime':time.time()} funciona perfectamente bien para mí. Tiene importado time?

Estos trabajos:

import time
from bottle import route, run

@route('/')
def index():
    return {'status':'online', 'servertime':time.time()}

run(host='localhost', port=8080)

Esto debería tratar funciona como está previsto

from bson.json_util import dumps
from bottle import route, run
import time

@route('/')
def index():
     return {'status':'online', 'servertime':dumps(time.time()) }

run(host='localhost', port=8080)

es fácil de conseguir utilizando JSON petición módulo de botella

from bottle import request

json_data = request.json # json_data is in the dictionary format
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top