반응형
before_first_request, before_request, after_request 함수
before_first_request, before_request, after_request 함수 사용 방법
URI를 통해 접속 전 후에 사용자가 원하는 동작을 시행할 수 있다.
1. Flask 내장 함수이므로 flask를 import 한다.
2. before_first_request 는 첫번째 해당 URI 접근 시 동작한다
3. before_request URI 접근 할 때마다 동작한다.
4. after_request 는 접근 후 동작한다. return 값을 입력으로 받아 처리 가능하다.
예제와 결과로 이해해보기
코드 - test.py>>
from flask import Flask
app = Flask(__name__)
@app.route("/")
def test():
print("No 1")
return "No 2"
@app.before_first_request
def before_first_request():
print("No 3")
@app.before_request
def before_request():
print("No 4")
@app.after_request
def after_request(return_val):
print("No 5")
return return_val
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True, port=9999)
결과 >>
* Running on http://0.0.0.0:9999/ (Press CTRL+C to quit)
No 3
No 4
No 1
No 5
127.0.0.1 - - [21/May/2021 17:57:11] "GET / HTTP/1.1" 200 -
No 4
No 1
No 5
127.0.0.1 - - [21/May/2021 18:02:52] "GET / HTTP/1.1" 200 -
주석>>
파이썬 코드에서 print 문에 숫자 순서를 통해 어떤 순서로 동작했는 지 알 수 있다. 우선 http://localhost:9999/ 를 웹브라우져를 통해 연결하였다. 그래서 No 3, 4, 1, 5 순서대로 값을 얻었다. 그리고 페이지는 그림1과 같이 return 값 No2를 표기 하였다.
다시 한번 http://localhost:9999/ 를 웹브라우져를 통해 연결 하니 이번에는 before_first_request 함수가 실행되지 않고 No 4, 1, 5 번만 나왔다.
반응형
'파이썬(Python) > Flask' 카테고리의 다른 글
[Python] Flask란? (WSGI, Werkzeug, Jinja2, Web framework) (0) | 2021.11.11 |
---|---|
파이썬 blueprint 란? 간단한 예제로 이해해보기(flask, python) (2) | 2021.05.24 |
파이썬 flash 사용해서 팝업창 만들기 (alert, popup, flash) (0) | 2021.05.19 |
make_response 함수란? 예제를 통한 사용 방법 학습(flask, python) (0) | 2021.05.12 |
Jinja2 조건문, 반복문 예제로 익혀보기 (if문, for문, flask) (0) | 2021.05.07 |