Flask 애플리케이션 팩토리
app = Flask(__name__)
플라스크는 app 객체를 사용해 여러 가지 설정을 진행한다. 그런데 이와 같은 방식으로 app 객체를 전역으로 사용하면 프로젝트 규모가 커질수록 문제가 발생할 확률이 높아진다. 순환 참조오류가 대표적이다.
순환 참조 : A 모듈이 B 모듈을 참조하고 B 모듈이 다시 A 모듈을 참조하는 경우
애플리케이션 팩토리 사용
플라스크 공식 홈페이지에서는 애플리케이션 팩토리를 사용하라고 권한다.
- pybo.py 를 __init__.py 파일로 변경하기
# projects > myproject
mkdir pybo
move pybo.py pybo/__init__.py
# 항상 프로젝트 디렉터리에서 실행
flask --debug run
- 애플리케이션 팩토리 사용하기
from flask import Flask
def create_app():
app = Flask(__name__)
@app.route('/')
def hello_pypo():
return 'Hello, Pybo!'
return app
create_app 함수가 애플리케이션 팩토리이다.