我有以下的Web應用程序:訪問在bottlepy響應對象after_request鉤
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')
是否有發送迴響應之前訪問響應體的方法嗎?
如果我啓動應用程序,我查詢/ping
,我可以在控制檯看到ping()
並以正確的順序的after()
功能運行
$ 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
但當after()
我嘗試訪問response.body
,我沒有任何東西。
在Flask中,after_request裝飾函數接受輸入響應對象,因此很容易訪問它。我如何在Bottle中做同樣的事情?
有什麼我失蹤了嗎?
插件不能要求不匹配任何路由請求。所以這使得它們不適合創建實例的訪問日誌。 –