반응형
@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를 참조하게 됩니다.
이제 플라스크 실행 후 들어가서 확인 해보겠습니다.
반응형
'플라스크 (추후 수정)' 카테고리의 다른 글
Flask 답변 등록, |length (0) | 2021.08.11 |
---|---|
Flask 질문 목록조회, 상세조회 query.order_by, create_date.desc(), render_template, 탬플릿태그 (if, for, 객체), query.get_or_404, url_for (0) | 2021.08.11 |
Flask 플라스크 셸을 이용해 DB 내용 추가 제거 수정해보기 (0) | 2021.08.10 |
Flask 애플리케이션 팩토리 (0) | 2021.08.09 |
Flask 프로젝트 구성표 (0) | 2021.08.09 |