--오늘의 학습 범위--
Part 10. Flask 기초 / Ch 02. 플라스크 기초
CH02_05. 플라스크 리퀘스트 후크와 어플리케이션 컨텍스트
리퀘스트 훅이란?
: 리퀘스트가 발생했을 때 리퀘스트 전 후의 이벤트 트리거링을 통해서 컨트롤 할 수 있다
예> 리퀘스트 전에는 항상 유저 세션을 체크한다.
리퀘스트 후에는 항상 데이터 베이스 세션을 닫는다.
-----> 유용한 기능이고 많이 사용 함
애플리케이션 컨텍스트
: - 자주 사용하는 앱 컨텍스트에는 g와 current_app이 있음.
- 요청이 시작되고 요청이 끝날 때 동일한 수명 주기를 갖는다.
g : (global) 리퀘스트가 발생했을 때 요청 안에서 자원을 관리하는 용도로 사용된다.
각각의 리퀘스트 내에서만 유효한 값이면서 로컬 변수임. /
로컬 스레드란: 리퀘스트들끼리 서로 공유 할 수 없음 /
리퀘스트는 각각의 분리된 환경일 것이고 리퀘스트 안에서만 사용할 수 있다.
current_app : 활성화된 어플리케이션을 위한 인스턴스
앱에 접근할 때 편리하게 쓰라고 만든 것 /
app인스턴스를 import하지 않고도, app의 config정보 조회 할 수 있음.
앱과의 연결고리/ current_app이 앱 인스턴스를 바라본다.
설명보다 직접 써보면서 익히는 것이 최고! 플라스크 공식문서를 보고 따라해보며 이것저것 오류를 겪어보는 것이
공부가 될 것 같다.
- 맨 첫 리퀘스트 훅
-매 리퀘스트 전에 훅
-매 리퀘스트 후에 훅
-매 리퀘스트 종료시 훅
-매 컨텍스트 제거시 훅
-g, current_app 사용해보기
<실습코드>
먼저 윗단에서 추가하고
@app.route('/')
def index():
app.Logger.info('RUN HELLO WORLD') ##추가
return 'Hello, World!'
... Request Hook ...
from flask import g, current_app
@app.before_first_request
def before_first_request():
app.Logger.info('BEFORE_FIRST_REQUEST') # 리퀘스트 최초(맨처음) 실행
# 화면 고침(리프레시)하면 안뜸
@app.before_request
def before_request():
g.test=true
app.Logger.info('BEFORE_REQUEST') #
@app.after_request
def after_request():
app.Logger.info(f'g.test:{g.test}')
app.Logger.info(f'current_app.config:{current_app.config}')
app.Logger.info('AFTER_REQUEST')
return reponse # after_request은 인자를 받는다.
@app.teardown__request
def teardown__request(excepotion): #excepotion을 받는다.
app.Logger.info('TEARDOWN_REQUEST')
@app.teardown_appcontext
def teardown_appcontext(excepotion):
app.Logger.info('TEARDOWN_CONTEXT')
return app
link :
수강료 100% 환급 챌린지 | 패스트캠퍼스
딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'취미부자 > 취미1_코딩' 카테고리의 다른 글
패스트캠퍼스 챌린지 28일차 / 파이썬 심화 문법/ (0) | 2021.11.28 |
---|---|
패스트캠퍼스 챌린지 27일차 /파이썬 심화 문법/ (0) | 2021.11.27 |
패스트캠퍼스 챌린지 25일차 / flask 기초 (0) | 2021.11.25 |
패스트캠퍼스 챌린지 24일차 / flask 기초 (0) | 2021.11.24 |
패스트캠퍼스 챌린지 23일차 / flask 기초 (0) | 2021.11.23 |
댓글