❗️ 이 글의 내용 출처 : 🌐위키독스 점프투 플라스크
app = Flask(__name__)
myproject/pybo.py
파일을 myproject/pybo/__init__.py
파일로 대체해 보겠다
먼저 (myproject) c:\projects\myproject> mkdir pybo
명령어로 새로운 디렉터리를 만들어 준다
pybo.py 파일을 pybo/init.py 파일로 대체하고
📌 move pybo.py pybo/__init__.py
플라스크 서버를 실행해 보면
위와 같이 잘 작동하는 것을 볼 수 있다
대체한다는 것이 사실상 파일이름을 바꾸는 것이었다
단, flask run 명령은 반드시 C:/projects/myproject 디렉터리에서 실행해야한다. 다른 곳에서 실행하면 실행은 되지만 정상으로 동작하지 않는다. 앞으로도 서버를 실행할 때는 위치를 꼭 확인하자.
이제는 __init__.py 파일을 열고 create_app 함수를 선언해서 플라스크 객체를 생성하는 방식으로 코드를 수정하겠다
from flask import Flask
# app = Flask(__name__) # 이렇게 app객체를 생성하는 방식에서
# 함수를 통해 app객체를 생성하고 반환하도록 바꿔보자
def create_app():
app = Flask(__name__)
@app.route('/') # @pp.route()는 데코레이터
# 기존 함수를 변경하지 않고 추가 기능을 덧붙이는 함수
def hello_pybo():
return 'Hello, Pybo!'
# return은 app 객체를 반환!
return app
이때 app 객체가 함수 안에서 사용되므로 hello_pybo 함수를 create_app 함수 안에 포함했다
바로 여기서 사용된 create_app 함수가 애플리케이션 팩토리다
❗️❗️ 주의
- 함수명으로 create_app 대신 다른 이름을 사용하면 정상으로 동작하지 않는다
- create_app은 플라스크 내부에서 정의된 함수명이다.
이제 수정된 코드를 flask run
으로 실행해보겠다
깔끔하게 실행된다 굿굿굿!