블루프린트는 대규모 애플리케이션 구현에 필요한 중요한 클래스이다. 이는 공통 URL에 대해 조직적으로 묶어 관리해주는 클래스이다.
별도의 정적 파일과 템플릿을 정의할 수 있으며, 공통 URL에 대해서 url_prefix 인자로 관리한다.
API를 작성한다고 가정해보자.
# main.py
from flask import Flask
app = Flask(__name__)
@app.route('/v1/users')
def v1_users():
return 'v1'
@app.route('/v2/users')
def v2_users():
return 'v2'
매번 API 버전이 늘어날 때마다 위의 코드처럼 v1_users(), v2_users() 등 버전을 추가해주는 방식은 매우 비효율적이다.
이 때 블루프린트를 사용해서 아래처럼 분리할 수 있다.
# v1.py
from flask import Blueprint
app = Blueprint('v1', __name__, url_prefix='/v1')
@app.route('/users')
def users():
return 'v1'
# v2.py
from flask import Blueprint
app = Blueprint('v2', __name__, url_prefix='/v2')
@app.route('/users')
def users():
return 'v2'
# main.py
from flask import Flask
from v1 import app as v1_app
from v2 import app as v2_app
app = Flask(__name__)
app.register_blueprint(v1_app)
app.register_blueprint(v2_app)
[참고] 처음 배우는 플라스크 웹 프로그래밍
'개발 관련 > python' 카테고리의 다른 글
[django] REST API 구축하기 (0) | 2023.01.09 |
---|---|
[crawling] HTTP error 403 (0) | 2022.01.12 |
[flask] 플러거블 뷰(pluggable view) (0) | 2022.01.05 |
[flask] 리다이렉션과 에러 (0) | 2022.01.05 |
[difflib] 두 문자열 비교하기 (0) | 2021.12.20 |