una soporta segundo rapida por optimizar mas lentas lenta hacer cuello cuantas consultas consulta como botella agilizar python json bottle

python - soporta - Botella y json



optimizar consultas mysql explain (5)

Es fácil obtener json usando el módulo de solicitud de la botella.

from bottle import request json_data = request.json # json_data is in the dictionary format

¿Cómo hago para devolver datos json desde un controlador de solicitud de botella? Veo un método dict2json en la botella src pero no estoy seguro de cómo usarlo.

Lo que está en la documentación:

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

Me da esto cuando abro la página:

<html> <head></head> <body>statusservertime</body> </html>


Por alguna razón, la función auto-json de bottle no funciona para mí. Si tampoco te funciona, puedes usar este decorador:

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

También es útil:

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


Simplemente devuelve un dict. Botella se encarga de la conversión a JSON para usted.

Incluso los diccionarios están permitidos. Se convierten a json y se devuelven con el encabezado Content-Type establecido en application / json. Para deshabilitar esta función (y pasar los dicts a su middleware), puede establecer bottle.default_app (). Autojson en False.

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

Tomado de la documentación.

http://bottlepy.org/docs/stable/api.html#the-bottle-class


prueba esto debería funcionar como es debido

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)


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

Esto funciona:

import time from bottle import route, run @route(''/'') def index(): return {''status'':''online'', ''servertime'':time.time()} run(host=''localhost'', port=8080)