@app.before_request
def before_request():
app.logger.info('BEFORE_REQUEST')
@app.before_first_request
def before_first_request():
app.logger.info('BEFORE_FIRST_REQUEST')
@app.after_request
def after_request(response):
app.logger.info('AFTER_REQUEST')
return response
@app.teardown_request
def teardown_request(exception):
app.logger.info('TEARDOWN_REQUEST')
우선, Flask에서 말하는 Context가 뭔지 이해할 필요가 있다. Flask에서 Context는 request를 처리하거나 CLI 명령어를 처리하기 위해 필요한 정보들을 저장하고 제공하기 위해 사용된다. 그 중 Application Context는 application level의 데이터를 보관한다(logger, database configuration). 그리고 두 개의 객체를 외부에 노출시킨다
@app.before_request
def before_request():
g.test=True
app.logger.info('BEFORE_REQUEST')
@app.after_request
def after_request(response):
app.logger.info('g.test : {}'.format(g.test))
#app.logger.info('current_app.cofig{}'.format(current_app.config))
app.logger.info('AFTER_REQUEST')
return response
@app.route('/test/method/<id>')
def method_test(id):
return jsonify({
'request.args':request.args,
'request.form':request.form,
'request.json':request.json
})