점프 투 플라스크
❗️ 이 글의 내용 출처 : 🌐위키독스 점프투 플라스크
2-01 플라스크 기초 다지기
⭐️ 플라스크 앱은 Flask 클래스로 만든 객체를 말한다
app = Flask(__name__)
- 플라스크는 app 객체를 사용해 여러 가지 설정을 진행
- 이와 같은 방식으로 app 객체를 전역으로 사용하면 프로젝트 규모가 커질수록 문제가 발생할 확률이 높아진다
- 대표적으로 순환 참조(circular import) 오류
⭐️ 애플리케이션 팩토리 사용하기
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
으로 실행해보겠다
깔끔하게 실행된다 굿굿굿!
Author And Source
이 문제에 관하여(점프 투 플라스크), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cdspacenoob/jtf02저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)