Flask는 application component를 만들거나, applicaion 안팎으로 공통적인 패턴을 지원하는 목적으로 블루프린트라는 컨셉을 사용한다.
블루프린트는 큰 application을 단순화시키는 역할을 하고, Flask extension(확장 프로그램, 라이브러리 등) 등록을 위한 중심 수단으로도 쓰인다.
플라스크는 controller의 endpoint 함수에 데코레이터를 붙여서 관리한다.
라우트함수(@app.route로 매핑되는 함수)들은 기능이 필요할때마다 계속 추가되어야 하기 때문에, create_app 함수내에 함수가 많을 경우 번거로워질 수 있다.
이런 상황에서 블루프린트(Blueprint)를 이용하면 라우트 함수들을 보다 구조적으로 관리할 수 있게 된다.
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