[Flask] 기본 앱 이름 app.py에서 바꾸기, 애플리케이션 팩토리

hyun·2022년 8월 31일
0

Python/Flask

목록 보기
2/4

📚 플라스크 기본 앱 이름 바꾸기

기본 앱이 app.py인 건 가독성이 그리 좋지 않다. 그래서 환경 변수를 활용해서 flask의 기본 앱명을 바꿔줄 수 있다.

khuda로 한 번 바꿔보자. 터미널에서 아래 명령어를 통해 바꿀 수 있다.

export FLASK_APP='khuda'

그 후 echo $FLASK_APP을 통해 환경변수를 확인하면 다음처럼 잘 출력된다.

ctrl+C를 눌러 서버를 종료하고, app.py파일의 이름을 khuda.py 파일로 바꾼 뒤 다시 Flask run을 통해 서버를 켜보자.

잘 실행된다!

📚 폴더를 앱으로 만들기 (?) - 애플리케이션 팩토리

말이 좀 이상한데, 우리는 기본 앱명을 khuda로 바꿨다.
이 말은 khuda.py가 기본 앱이라는 건 아니고, 디렉토리 내에서 khuda 모듈을 찾는다는 뜻이다.
그래서 khuda가 파이썬 스크립트가 아닌 폴더여도 실행이 가능하다!
백문에 불여일견, 한 번 해보자.

  • khuda 디렉토리를 만든다.

  • 그 안에 __init__ 파일을 만들고 앱을 만드는 기본 스크립트를 넣어주자. 단, 아래처럼 넣어줘야 한다.

from flask import Flask

def create_app():
    app = Flask(__name__)

    @app.route('/')

    def hello_world():
        return "Hello World!"
    
    return app

이렇게 init 함수가 객체를 반환하게끔 했다.
이 때 app 객체를 반환하는 create_app 함수를 애플리케이션 팩토리라고 한다.

create_app 외의 함수명을 주면 안된다. 이는 flask 내에서 정의된 것.

애플리케이션 팩토리를 활용하는 이유는, app 객체를 전역으로 생성했을 때 생기는 여러 문제점을 방지하기 위함이다.
이렇게 함으로써 각자 다른 설정의 app의 인스턴스를 굴릴 수 있다.

0개의 댓글