Question

Comment puis-je de retourner des données JSON à partir d'un gestionnaire de requêtes de la bouteille. Je vois une méthode de dict2json dans la bouteille, mais src Je ne sais pas comment l'utiliser.

Qu'est-ce que dans la documentation:

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

me donne quand je afficher la page:

<html>
    <head></head>
    <body>statusservertime</body>
</html>
Était-ce utile?

La solution

Il suffit de retourner un dict. poignées de bouteille la conversion à JSON pour vous.

  

dictionnaires sont autorisés même. Ils sont convertis en JSON et sont revenus avec en-tête Content-Type ensemble à l'application / JSON. Pour désactiver cette fonction (et passer dicts à votre middleware) vous pouvez définir bottle.default_app (). Autojson False.

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

la documentation.

http://bottlepy.org/docs/stable/api. html # la bouteille classe

Autres conseils

Pour une raison quelconque, la fonction auto-JSON de bouteille ne fonctionne pas pour moi. Si cela ne fonctionne pas pour vous non plus, vous pouvez utiliser ce décorateur:

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

Aussi pratique:

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()} fonctionne parfaitement bien pour moi. Avez-vous importé time?

Cela fonctionne:

import time
from bottle import route, run

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

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

essayer cela devrait fonctionne comme prévu

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)

il est facile d'obtenir JSON en utilisant le module de demande de bouteille

from bottle import request

json_data = request.json # json_data is in the dictionary format
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top