반응형

@app.route 같이 어노테이션으로 맵핑되는 함수라우트 함수라고 합니다.

새로운 URL이 생길 때 라우트 함수를 create_app 함수 안에 계속 추가해야 하는 불편함이 있습니다. 

이 때 사용할 수 있는 클래스가 블루프린트입니다.

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

@bp.route에서 bp는 Blueprint클래스로 생성한 객체입니다. 
생성시 Blueprint(이름모듈명URL프리픽스)를 전달해야 합니다.

url_prefix에 대해 설명하자면 url_prefix='/' 일 경우 localhost:5000/ 
(localhost:5000은 기본적으로 설정된 아이피와 포트번호입니다. 다를 수도 있어요)

url_prefix='/main' 이라고 입력 되면 localhost:5000/main이 되게 됩니다.

 



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'

main_views.py 내용을 작성해주세요

from flask import Flask

def create_app():
        app = Flask(__name__)

        from .views import main_views # .view에서 .은 현재위치의 views 폴더로부터 import한다는 말
        app.register_blueprint(main_views.bp) # 블루프린트 객체 bp 등록

        return app

pybo.py를 수정해주세요

 

이렇게 블루프린트 객체app.register_blueprint(파일.bp객체명)으로 등록해주면 main_views.py를 참조하게 됩니다.

 

 

이제 플라스크 실행 후 들어가서 확인 해보겠습니다.

 

반응형