개발바닥

HTTP 요청 전후에 대한 핸들러 관리 본문

Flask

HTTP 요청 전후에 대한 핸들러 관리

라이언 2019. 1. 30. 01:42
반응형

웹 프로그램은 HTTP 요청을 받아 응답 결과를 반환하는 것이 주 임무이다. 종종 HTTP 요청을 실행하기 이전에 어떤 추가 작업을 실행하고자 한다면, 뷰 함수 안에 추가적으로 실행해야 할 로직을 기술하는 것이 일반적일 것이다. 그러나 이와 같은 처리가 한 개의 뷰함수에 해당하지 않고 여러 개에서 수십, 수백 개에 이른다면 사용하기 어렵다 그래서 Flask 는 HTTP 요청 전후에 사용할 수 있는 데코레이터를 제공해준다.

 

  • before_first_request : 웹 애플리케이션 기동 이후 가장 처음에 들어오는 HTTP 요청에서만 실행된다.
  • before_request : 매 HTTP 요청이 들어올 때마다 실행된다.
  • after_request : 매 HTTP 요청이 끝나 브라우저에 응답하기 전에 실행된다.
  • teardown_request : HTTP 요청의 결과가 브라우저에 응답한 다음 실행된다.
  • teardown_appcontext : HTTP 요청이 완전히 완료되면 실행되며, 애플리케이션 컨텍스트 내에서 실행된다.

 

코드

 

from flask import Flask
app=Flask(__name__)

@app.route("/")
def http_prepost_response():
return "hello world"

@app.before_first_request
def before_first_request():
print("앱이 기동되고 나서 첫 번째 HTTP 요청에만 응답한다.")

@app.before_request
def before_request():
print("매 HTTP 요청이 처리되기 전에 실행된다.")

@app.after_request
def after_request(response):
print("매 HTTP 요청이 처리되고 나서 실행된다.")
return response

@app.teardown_request
def teardown_request(exception):
print("매 HTPP 요청의 결과가 브라우저에 응답하고 나서 호출된다.")

@app.teardown_appcontext
def teardown_appcontext(exception):
print("HTTP 요청의 애플리케이션 컨텍스트가 종료될 때 실행")

if __name__=="__main__":
app.run()

 

결과 화면

 

 

반응형

'Flask' 카테고리의 다른 글

Flask 객체  (0) 2019.01.30
flask 간단한 웹 서버 구축  (0) 2019.01.30
Comments