[TIL] Flask Blueprint

mandarinduk·2020년 11월 8일
0

Flask는 application component를 만들거나, applicaion 안팎으로 공통적인 패턴을 지원하는 목적으로 블루프린트라는 컨셉을 사용한다.

블루프린트는 큰 application을 단순화시키는 역할을 하고, Flask extension(확장 프로그램, 라이브러리 등) 등록을 위한 중심 수단으로도 쓰인다.

플라스크는 controller의 endpoint 함수에 데코레이터를 붙여서 관리한다.

라우트함수(@app.route로 매핑되는 함수)들은 기능이 필요할때마다 계속 추가되어야 하기 때문에, create_app 함수내에 함수가 많을 경우 번거로워질 수 있다.

이런 상황에서 블루프린트(Blueprint)를 이용하면 라우트 함수들을 보다 구조적으로 관리할 수 있게 된다.

Blueprint 사용법

  1. blueprint 객체를 생성한다.
  2. app을 정의하는 함수(app = Flask(name)이 포함된)에서 app에 blueprint 객체를 register해준다.
  3. controller route에서 blueprint 객체를 써준다.

Blueprint는 이름, 모듈명, URL 프리픽스 값을 입력으로 객체를 생성한다. 여기서 이름은 나중에 함수명으로 URL을 찾아내는 url_for 함수에서 사용된다.

URL 프리픽스(url_prefix)는 파일에 있는 함수들의 URL 앞에 항상 붙게 되는 프리픽스 URL을 의미한다.

account_bp = Blueprint('accounts', __name__, url_prefix='/accounts')

@account_bp.route('/login', methods=['POST'])

위 코드의 endpoint : http://localhost:5000/accounts/login

profile
front-end 신입 개발자

0개의 댓글