Bu basit uygulama, iki teardown_request
işleyicileri vardır ve bunlardan ikisi, her istek için çağrılacak beklediğiniz olursa olsun Ancak, zaman documentationGörünüm görünümünde yalnızca bir Flask teardown_request işlevi çağrılıyor Neden Özel Durum mu?
import flask
import werkzeug.exceptions
app = flask.Flask(__name__)
@app.teardown_request
def teardown1(response):
print "Teardown 1"
return response
@app.teardown_request
def teardown2(response):
print "Teardown 2"
return response
@app.route("/")
def index():
return "chunky bacon"
@app.route("/httpexception")
def httpexception():
raise werkzeug.exceptions.BadRequest("no bacon?")
@app.route("/exception")
def exception():
raise Exception("bacoff")
if __name__ == "__main__":
app.run(port=5000)
uyarınca, görünüm uygulamasında ne ben
Teardown 2 Teardown 1 127.0.0.1 - - [15/Nov/2011 18:53:16] "GET/HTTP/1.1" 200 - Teardown 2 Teardown 1 127.0.0.1 - - [15/Nov/2011 18:53:27] "GET /httpexception HTTP/1.1" 400 - Teardown 2 127.0.0.1 - - [15/Nov/2011 18:53:33] "GET /exception HTTP/1.1" 500 -
Sadece teardown_request
işlevlerinden biri werkzeug.exceptions.HTTPException
elde edilmez bir istisna geçen görünümü tarafından yükseltildiğinde çağrıldığını: çalıştırmak ve sırayla üç görünümlere istekte, ben şu çıktıyı olsun. Herhangi bir fikir neden, ya da bu balonun içinde bir hata mı?
+1 - ne yazdığınızı yazdırabilirsiniz. –