반응형
프로젝트 규모가 커질수록 문제가 발생할 확률이 높아집니다.
app 객체를 전역으로 사용할 때 발생하는 문제가 생기는데
예방하려면 애플리케이션 팩토리를 사용하라고 권합니다.
pybo.py파일을 pybo/__init__.py 파일로 대체하고 플라스크 서버를 실행해보겠습니다.
pybo라는 폴더를 생성해주고 기존의 pybo.py를 pybo/__init__.py로 옮기고 이름을 변경해봤습니다.
그리고 실행 시켰는데 아주 잘 실행됩니다.
우리는 저번에 FLASK_APP=pybo로 설정해놨기 때문에 c:\projects\myproject 에서 pybo.py를 찾을 수 있습니다.
만약 pybo.py가 아니라 pybo123로 cmd를 설정하고 pybo123으로 이름 바꾸면 또한 찾을 수 있습니다.
그리고 만약 pybo라는 파일이 없는데 폴더가 있는 경우 거기에서
기본적으로 __init__.py라는 파일을 실행(기본적으로 __init__.py가 default값)시켜주는 것입니다.
애플리케이션 팩토리를 사용해보도록 하겠습니다.
from flask import Flask
def create_app():
app = Flask(__name__)
@app.route('/')
def heello_pybo():
return 'Hello, Pybo!'
return app
만약 app이라는 변수를 전역으로 사용할 경우 문제가 생길 수 있기 때문에 지역변수로 선언해 문제가 없게 합니다.
create_app 대신 다른 이름을 사용하면 정상 동작하지 않습니다. flask 내부 정의된 함수명입니다.
반응형
'플라스크 (추후 수정)' 카테고리의 다른 글
Flask 답변 등록, |length (0) | 2021.08.11 |
---|---|
Flask 질문 목록조회, 상세조회 query.order_by, create_date.desc(), render_template, 탬플릿태그 (if, for, 객체), query.get_or_404, url_for (0) | 2021.08.11 |
Flask 플라스크 셸을 이용해 DB 내용 추가 제거 수정해보기 (0) | 2021.08.10 |
Flask BluePrint, 라우트 함수 (0) | 2021.08.09 |
Flask 프로젝트 구성표 (0) | 2021.08.09 |