본문 바로가기

window 환경에서 개발하기/Flask

Flask 개발 기초 ③ API 라우팅 함수 관리(블루프린트)

반응형
[점프 투 플라스크]를 참고해서 작성한 글입니다.
https://wikidocs.net/81510

 

 

flask 프로젝트 구조 예

 

 

 

이번 포스팅은 views 디렉토리에 대해 알아보겠습니다.

 

 

 

 

 

 

1. 블루프린트?

 

블루프린트(blueprint)는 Flask에서 URL과 함수의 매핑을 관리하기 위해 사용하는 도구입니다.

 

블루프린트 이용하면 라우팅 함수를 체계적으로 관리할 수 있습니다.

 

 

 

2. 블루프린트 생성

 

 

현재 작업 상태부터 확인해볼까요.

 

 

현재 작업 상태

 

 

 

이 상태에서 pybo 디렉토리 안에 views 디렉토리를 만들고 main_views.py 파일을 만듭니다.

 

main_views.py 에는 '/hello'와 '/'경로에 대한 매핑 코드를 작성해봅시다.

 

 

 

# c:\myproject\shop\pybo\views\main_views.py
from flask import Blueprint

bp = Blueprint('main', __name__, url_prefix='/')


@bp.route('/hello')
def hello_pybo():
    return 'Hello, Pybo!'


@bp.route('/')
def index():
    return 'Pybo index'

 

 

결과 화면

 

 

 

 

2. 블루프린트 등록

 

 

생성한 블루프린트를 사용하기 위해서는 __init__.py 파일에 등록을 해줘야 합니다.

 

__init__.py 파일을 수정해봅시다.

 

 

# c:\myproject\shop\pybo\__init__.py
from flask import Flask

def create_app():
    app = Flask(__name__)

    # 블루프린트
    from .views import main_views
    app.register_blueprint(main_views.bp)

    return app

 

 

 

 

flask run을 해서 결과를 확인합니다.

 

 

 

 

 

 

 

이렇게 views 디렉토리를 따로 만들어서  main_views.py 파일에 라우팅 함수를 관리해주면

 

 __init__.py 파일의 create_app 함수 안에 라우팅 함수를 조잡하게 추가할 필요가 없게 됩니다.

 

 

 

 

 

 

반응형