on
[파이썬 서버] 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