Blueprint란 ?
플라스크는 어플리케이션 컴포넌트를 만들고 어플리케이션 내부나 어플리케이션간의 공통 패턴을 지원하기 위해 블루프린트(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에서 호출한다.
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
점프 투 플라스크