가장 기초의 플라스크 앱을 만들었는데, 문제가 있단다.
app = Flask(__name__)
이렇게 app 객체를 전역으로 사용하면 순환참조오류가 발생할 위험이 높다네 흠..
순환참조오류는 두 모듈이 서로를 동시에 참조하는 경우를 말함
A -> B and B -> A
이걸 해결하기 위한 것이 어플리케이션 팩토리
전역에 선언한 app을 create_app 함수 안으로 넣어보자
from flask import Flask
#app = Flask(__name__)
#@app.route('/')
# def hello_pybo():
# return 'Hello, Pybo!'
def create_app():
app = Flask(__name__) # craete_app 안으로
@app.route('/')
def hello_pybo():
return 'Hello, Pybo!'
return app
여기서 정의한 create_app을 어플리케이션 팩토리라고 함.
공장..? 어플이 만들어지는 곳이란 뜻으로 받아들이면 되나
create_app은 flask에서 정의한 함수이기에 다른 이름으로 변경하면 작동하지 않음 주의!