블루 프린트 사용하기 - 라우트 함수 관리

Red_Panda·2021년 3월 9일
0

pybo/__init__.py 파일 내용중 hello_pybo 함수는 URL 에서 /에 매칭되는 함수다. 그 매핑을 @app.route('/') 라는 애너테이션이 만들어주는데, 이처럼 애너테이션으로 매핑되는 함수를 라우트 함수라고 한다.

이전에 작성해본 코드는 새로운 URL이 생길 때마다 라우트 함수를 create_app 함수안에 계속 추가해야 하는 귀찮음이 있다. 이를 해결해주는 클래스가 블루프린트다.

Blueprint(블루프린트) : URL과 호출되는 함수의 관계를 확인할 수 있는 Blueprint 클래스

블루프린트 만들기

c:\projects\myproject\pybo 로 이동해서 pybo 디렉토리 안에 views 디렉토리를 만들어준다. views 디렉토리에 main_views.py 파일을 만들어 코드를 입력한다.

이전 코드와의 차이점은 @app.route --> @bp.route 인점이다. bp는 Blueprint 클래스로 생성한 객체를 뜻한다. 객체를 생성하는 방법은 아래와 같다.

생성할 객체명 = Blueprint("이름",모듈명,url_prefix=)

이제 만들었던 블루프린트를 적용해보자.
이전에 만든 __init__.py 파일을 아래와 같이 수정한다.

create_app 함수 내에서 hello_pybo 대신 bp(블루프린트 객체)를 사용하도록 변경했다.

이제 main_views.py에 라우트 함수를 등록해 동작을 확인해보면 된다.

2가지 경로로 만들었다. 이제 플라스크를 실행하고 각각 경로에 대해서 확인해보자.
플라스크 실행은 myproject 디렉토리로 이동해서 해야한다.


'/' , 과 '/hello' , 주소에 따라 다른 함수가 호출 되는 것을 볼 수 있다.

profile
신입 개발자

0개의 댓글