Greifen Sie in einem Bottlepy-after_request-Hook auf das Antwortobjekt zu

Ich habe die folgende Web-App:

import bottle
app = bottle.Bottle()

@app.route('/ping')
def ping():
    print 'pong'
    return 'pong'

@app.hook('after_request')
def after():
    print 'foo'
    print bottle.response.body

if __name__ == "__main__":
    app.run(host='0.0.0.0', port='9999', server='cherrypy')

Gibt es eine Möglichkeit, auf den Antworttext zuzugreifen, bevor die Antwort zurückgesendet wird?

Wenn ich die App starte und frage/pingIch kann in der Konsole sehen, dass dieping() und dasafter() Funktion in der richtigen Reihenfolge ausführen

$ python bottle_after_request.py 
Bottle v0.11.6 server starting up (using CherryPyServer())...
Listening on http://0.0.0.0:9999/
Hit Ctrl-C to quit.

pong
foo

aber wenn inafter() Ich versuche zuzugreifenresponse.bodyIch habe nichts.

In Flask übernehmen die mit after_request dekorierten Funktionen die Eingabe des Antwortobjekts, so dass ein einfacher Zugriff darauf möglich ist. Wie kann ich das auch in der Flasche machen?

Fehlt mir etwas?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage