본문 바로가기
공부기록/파이썬

[Flask] Blueprint로 라우터 관리하기

by 책읽는 개발자 ami 2023. 7. 3.
728x90
반응형

Blueprint는 Flask 애플리케이션의 라우트와 관련된 기능을 모듈화하고 조직화하는 데 사용된다.

아래는 Flask 앱과 라우터를 분리하여 구축하는 예시 코드입니다.

app.py

from flask import Flask
from routers import api_blueprint

app = Flask(__name__)
app.register_blueprint(api_blueprint)

if __name__ == '__main__':
    app.run()

routers.py

from flask import Blueprint

api_blueprint = Blueprint('api', __name__)

@api_blueprint.route('/')
def index():
    return 'Hello, World!'

@api_blueprint.route('/users')
def get_users():
    # 사용자 목록 조회 로직 구현
    # ...

@api_blueprint.route('/users/<int:user_id>')
def get_user(user_id):
    # 특정 사용자 조회 로직 구현
    # ...

# 더 많은 라우트 및 로직 추가 가능

* app.py 파일에서는 Flask 앱을 생성하고 api_blueprint을 등록한다.
* routers.py 파일에서는 api_blueprint을 생성하고 해당 Blueprint에 라우트 함수들을 정의한다.
* 이렇게 분리된 라우터 파일을 앱에서 import하여 사용할 수 있다.

Blueprint란?

Blueprint는 Flask 애플리케이션의 라우트와 관련된 기능을 모듈화하고 조직화하기 위해 사용되는 객체.

위 코드에서 `api_blueprint`는 Blueprint 객체를 생성한 것으로, `Blueprint('api', __name__)` 형태로 생성된다.

첫 번째 인자인 `'api'`는 Blueprint의 이름을 나타내며, 두 번째 인자인 `__name__`은 모듈의 이름을 전달한다.

모듈의 이름을 전달하여 Blueprint가 현재 모듈을 기준으로 동작할 수 있도록 한다.

Blueprint 객체에는 `.route()` 메서드를 사용하여 라우트를 정의할 수 있다.

728x90
반응형