반응형

before_first_request : 웹 application 기동 이후 가장 처음에 들어오는 HTTP 요청에서만 실행

before_request : HTTP 요청이 들어올때마다 실행

after_request : HTTP 요청이 끝나고 브라우저에 응답하기 전에 실행

teardown_request : HTTP 요청 결과가 브라우저에 응답한 다음 실행

teardown_appcontext : HTTP 요청이 완전히 완료되면 실행


before_first_request, before_request는 어떠한 인자도 전달할수 없다!!

after_request는 flask.wrapper.Response 객체를 return 해야한다.


맨 상단에 # 부분은 Encoding 때문에 추가함


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -*- coding: utf-8 -*- 
from flask import Flask
 
app = Flask(__name__)
 
@app.route("/")
def http_my_response():
    return "/"
 
@app.before_first_request
def before_first_request():
    print ("앱 기동하고 맨처음 요청만 응답")
 
@app.before_request
def before_request():
    print ("매 요청마다 실행")
 
@app.after_request
def after_request(response):
    print ("매 요청 처리되고 나서 실행")
    return response
 
@app.teardown_request
def teardown_request(exception):
    return "브라우저가 응답하고 실행"
 
@app.teardown_appcontext
def teardown_appcontext(exception):
    print ("HTTP 요청 애플리케이션 컨텍스트가 종료될때 실행")
 
if __name__ == "__main__":
    app.run(host="0.0.0.0")
cs


두번 요청에 대한 결과값


1
2
3
4
5
6
7
8
9
앱 기동하고 맨처음 요청만 응답
매 요청마다 실행
매 요청 처리되고 나서 실행
HTTP 요청 애플리케이션 컨텍스트가 종료될때 실행
127.0.0.1 - - [22/Aug/2016 22:34:31] "GET / HTTP/1.1" 200 -
매 요청마다 실행
매 요청 처리되고 나서 실행
HTTP 요청 애플리케이션 컨텍스트가 종료될때 실행
127.0.0.1 - - [22/Aug/2016 22:34:56] "GET / HTTP/1.1" 200 -
cs







728x90
반응형

+ Recent posts