[Flask] Blueprint를 이용한 모듈화

가비·2021년 10월 10일
0

[Flask]

목록 보기
2/2

Blueprint란 ?
플라스크는 어플리케이션 컴포넌트를 만들고 어플리케이션 내부나 어플리케이션간의 공통 패턴을 지원하기 위해 블루프린트(blueprint)라는 개념을 사용한다.
블루프린트는 어플리케이션이 동작하는 방식을 단순화하고 중앙 집중된 등록 수단을 제공한다.

  • Flask는 라우트 함수를 이용하여 url을 생성하고 데코레이터 형식으로 매핑하게 되는데 기능이 추가될수록 라우트 함수도 늘어나게 되고 app에 계속 추가해 주어야 한다.
    이때 블루프린트를 이용하면 Django의 프로젝트 urls.py와 같이 깔끔하게 관리할 수 있다.

Blueprint 객체 생성

# user.py
from flask import Blueprint 

bp = Blueprint('user', __name__)

@bp.route('/signup', methods=['POST'])
def signup():
    return jsonify()

user라는 이름의 블루프린트 객체를 bp로 생성하고 route 함수를 app이 아닌 bp에서 호출한다.

Blueprint 등록

from flask import Flask
from . import user

app = Flask(__name__)

app.register_blueprint(user.bp)
# app.register_blueprint(user.bp, url_prefix='/admin')

app.py 또는 __init__.py와 같이 Flask 객체가 생성된 곳에서 등록할 블루프린트 객체가 있는 파일을 import 해주고 app에 블루프린트 객체를 등록해 준다.

필요시 url_prefix를 이용하여 접두어를 지정할 수 있다.
위의 주석처럼 prefix를 지정하고 user.py의 /singup을 요청한다면 http://localhost:5000/admin/singup 과 같은 url로 호출된다.


| 참고
Flask-docs
점프 투 플라스크

0개의 댓글