본문 바로가기

IT

Flask - 애플리케이션(메모앱) 만들어보기 #1

오늘은 플라스크(Flask)라는 웹 기반 서비스를 이용해 프로젝트를 공부해보려 합니다.

 

설명하기에 앞서 Flask 설치 방법 및 통합개발환경(비주얼 스튜디오 설치 및 python 등의 연동) 방법은 생략토록 하겠습니다.

 

그럼 첫번째, 프로젝트의 첫 번째 단계에서 플라스크 애플리케이션의 기본 구조를 설정합니다.

 

여기서는 flask run 명령어를 사용하여 애플리케이션을 실행할 수 있도록 준비해볼께요

 

다음과 같이 폴더 구조를 만들 예정입니다. 여기서는 프로젝트 펄더를 my_memo_app으로 정의하며,

 

해당 폴더와 하부 폴더명은 가이드에 맞게 진행하시길 바랍니다.

 

my_memo_app/

   +---- templates/

   ㄴ---- app.py

 

1. 플라스크 애플리케이션 생성 및 flask run 설정하기

 

다음과 같이 app.py 파일을 생성하고, 플라스크 애플리케이션의 기본 구조를 작성해봅니다.

 

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Welcome to My Memo App!'

 

이 코드는 다음과정을 실행합니다.

 

  • Flask 인스턴스를 생성합니다. (app = Flask(__name__)).
  • 루트 URL('/')에 접근했을 때 실행되는 home() 함수를 정의합니다. 이 함수는 아래의 'Welcom to My Memo App!' 메시지를 반환하게 됩니다.

 

2. flask run 명령어로 애플리케이션 실행

vscode(비주얼 스튜디오 코드)에서 터미널을 오픈한 후 flask run을 실행합니다. 그리고 웹 브라우저에서 http://127.0.0.1:5000/ 주소로 웹브라우저를 이용해 접근하게 되면 'Welcom to My Memo App!'이라는 화면을 보실 수 있습니다.

 

비주얼 스튜디오 코드에서의 flask run 실행 화면

 

웹브라우저 화면

 

[여기서 잠깐!]

Flask Debug 모드에 관하여

 

환경 변수를 설정하면 플라스크를 디버그 모드로 명시적으로 실행할 수 있습니다. 이는 운영체제에 따라 다를 수 있으며, 다음은 일반적인 방법입니다.

FLASK_APP 설정은 flask run 실행 시 어떤 파일을 실행할 지를 설정하는 것이며, FLASK_DEBUG는 플라스크 애플리케이션 실행 시 디버그 모드를 켤지 말지를 설정하는 것입니다.

FLASK_DEBUG=1 은 디버그 모드 활성화하는 것이고, FLASK_DEBUG=0은 디버그 모드를 비활성화 하는 것입니다.

다만, 운영 환경에서는 보안상의 이유로 디버그 모드를 비활성화하는 것이 매우 중요합니다. 디버그 모드가 활성화되어 있으면 에러 발생 시 민감한 정보가 노출되어 해킹 위협의 표적이 될 수 있습니다.

 

#[윈도우]
set FLASK_APP=app.py
set FLASK_DEBUG=1
flask run

#[리눅스/MAC OS]
export FLASK_APP=app.py
export FLASK_DEBUG=1
flask run

 

파이썬 라이브러리는 수시 업데이트가 되기때문에 DEBUG 모드를 활성화하게 되면 내부에서 사용하는 watchdog 라이브러리와 충돌이 발생해 에러가 날 수 있습니다. 이 때는 pip uninstall watchdog 명령으로 기존에 설치되어 있는 watchdog 라이브러리를 삭제하고, pip install watchdog 명령으로 재설치 업그레이드를 하셔야 될 수 있습니다.

 

오늘은 플라스크 애플리케이션 구조 설명과 flask run 으로 웹서비스를 실행하고 웹브라우저에서 서비스가 되는지 확인해 보았습니다. 다음 시간은 사용자 인터페이스 개발, 데이터베이스 연동(CRUD) 등의 기능 구현을 해보도록 하겠습니다.

 

감사합니다.