[파이썬 서버] Flask를 잘 써보자 - Blueprint

[파이썬 서버] Flask를 잘 써보자 - Blueprint

이전 포스트에서 플라스크를 이용해서 웹을 구성했다.

Hi 밖에 나오지 않지만 일단 구축에 성공했다고 볼 수 있다.

2021.08.17 - [python/웹] - [파이썬 서버] 간단하게 파이썬 웹페이지 만들기 ( Flask ) [1]

만약 서비스가 복잡해지고, 신경써야 할 url이 많아진다면 플라스크를 실행시키는 main 함수가 끝도없이 길어진다.

개발할 때도, 기능별로 함수나 클래스로 구현하듯, Flask도 동일한 기능을 지원해준다.

Blueprint

main.py

from flask import Flask app = Flask(__name__) @app.route('/') def root(): return f'HI This Url called by {__name__}' if __name__ == '__main__': app.run(host='0.0.0.0',debug=True)

메인 함수를 실행 시키고, 루트 url로 접속하면

다음과 같이 메인에서 호출된 것을 볼 수 있다.

이제 fun1.py , fun2.py 파이썬 파일을 생성해보자.

새로 생성된 파일에 새로 넣으려고 하는 url을 만들어 주자.

fun1.py

from flask import Blueprint app_fun1 = Blueprint('app_fun1',__name__) @app_fun1.route('/app_fun1') def appfun1(): return f'HI This Url called by {__name__}'

Bluprint를 임포트하고, 메인함수와 다르게 Blueprint 객체를 만들어주고, 'app_fun1'이라는 이름을 붙여주자.

메인함수에선 데코레이터로 @app.route('url')로 만들어줬다면,

Blueprint 파일에서는 Blueprint객체로 route를 해준다.

방식은 동일하다.

비교용으로 fun2.py파일을 만들어주고

변수명만 app_fun1 => app_fun2로 바꿔주자.

두개의 Blueprint를 만들었다면, 메인함수에 이 두개를 추가해주면 끝이다.

수정된 main.py

from flask import Flask from fun1 import app_fun1 from fun2 import app_fun2 app = Flask(__name__) @app.route('/') def root(): return f'HI This Url called by {__name__}' app.register_blueprint(app_fun1) app.register_blueprint(app_fun2) if __name__ == '__main__': app.run(host='0.0.0.0',debug=True)

Flask 객체에 blueprint를 등록시켜주기 위해서 앞서 만들어놓은 파일들을 import하고,

Blueprint 객체를 등록시키면 된다.

app_fun1은 fun1에서 불러왔고, app_fun2는 fun2에서 불러왔다고 표시된다.

from http://kkiho.tistory.com/13 by ccl(A) rewrite - 2021-08-19 15:00:22