본문 바로가기

개발 관련/python

[flask] 블루프린트(blueprint)

블루프린트는 대규모 애플리케이션 구현에 필요한 중요한 클래스이다. 이는 공통 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