반응형
[점프 투 플라스크]를 참고해서 작성한 글입니다.
https://wikidocs.net/81504
이번 포스팅은 __init__.py 파일에 대해 알아보겠습니다.
1. pybo.py를 __init__.py 파일로 변경
이전 포스팅에서 pybo.py 파일을 만들어서 flask run으로 동작시켜 봤습니다.
이 때 만든 pybo.py 파일을 pybo 디렉토리를 만들어서 그 안에 넣어줄 겁니다.
2. 애플리케이션 팩토리(application factory)
그리고 파일 코드를 create_app 함수를 선언하는 방식으로 수정합니다.
# c:\myproject\shop\pybo\__init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
@app.route('/')
def hello_pybo():
return 'Hello, Pybo!'
return app
pybo.py를 __init__.py 파일로 변경하고, create_app 함수가 app 객체를 생성해 반환하도록 코드를 수정하는 이유는
app 객체(app = Flask(__name__))를 전역으로 사용하면 오류가 발생하기 때문입니다.
(순환 참조 오류 등)
플라스크 공식 홈페이지에서는 이 문제를 예방하려면 애플리케이션 팩토리(application factory)를 사용하라고 하는데,
여기서 사용된 create_app 함수가 바로 애플리케이션 팩토리입니다.
create_app은 플라스크 내부에서 정의된 함수명임으로
create_app 대신 다른 이름을 사용하면 정상작동하지 않으니 주의가 필요합니다.
다음 포스팅에서는 API 라우팅 함수를 관리하는 방법을 알아보겠습니다.
반응형
'window 환경에서 개발하기 > Flask' 카테고리의 다른 글
Flask에 MySQL 데이터 연동 ① DB 연동 순서(pymysql) (2) | 2023.04.27 |
---|---|
Flask 개발 기초 ③ API 라우팅 함수 관리(블루프린트) (0) | 2023.04.27 |
Flask 개발 기초 ① 개발 환경 구축, flask 설치(+가상 환경 배치 파일 만드는 방법) (0) | 2023.04.26 |