본문 바로가기

Dev/[python]

[Getting started Flask] 플라스크 시작해보기 - 2

반응형

 

INTRO


 

지난 포스팅에서 Flask로 서버를 만들기 위한 준비를 완료했다.

이번 포스팅에서는 플라스크 관련 라이브러리들을 pip명령어를 통해 설치하고,

프로젝트 디렉토리 구조를 잡아 볼 것이다.

 

 


 

 

 

1. flask 라이브러리 설치하고 실행하기

--> 파이참 IDE의 하단 부분에서 Terminal 탭을 클릭한다.

기존에 설정해두었던 가상 환경에서 명령어를 수행할 준비가 되어 있는 것을 볼 수 있다

 

--> 아래 명령어를 입력하여 Flask 를 설치한다. 큰 오류 없이 설치가 완료될 것이다.

pip install Flask

혹시나 pip 버전이 낮을 경우, 정상 설치가 되지 않을 수도 있다.

해당 경우에는 아래 명령어를 통해 먼저 pip을 업데이트 해주자.

python -m pip install --upgrade pip

 

 

--> 설치가 완료되었으면 Flask를 구동할 파일 하나를 생성한다. flaskTest라는 파이썬 파일을 만들것이다.

 

--> 이후 아래와 같이 작성한다.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World!'

 

--> 실행을 위해 2가지 설정을 해줘야 한다.

(1) set FLASK_APP=flaskTest 명령어를 수행해야 한다. 해당 프로젝트가 Flask app이라는 것을 알리기 위해 환경 변수에 우리의 프로젝트명을 등록하는 과정이다.

set FLASK_APP=flaskTest

 

(2) 개발 환경을 development 로 설정해주어야 한다. 최초 프로젝트 생성 후 FLASK_ENV 환경변수는 Default가 production으로 되어있다. 이 상태로 서버를 구동해도 무방하나, 경고문이 발생한다. (운영 환경에서는 개발하지 말라는 선조들의 경험에서 나오는 경고문인듯..)

set FLASK_ENV=development

 

 

--> 명령어를 수행한 모습

 

 

--> 이후 flask run 명령어를 통해 서버를 실행시키자

flask run

 

--> 정상적으로 수행된 것을 볼 수 있다. 이제 웹 브라우저를 열고 localhost:5000에 접속하여 서버 정상 구동을 확인한다.(flask 의 기본 port는 5000번이다.)

 

--> 여기까지가 플라스크 설치 후 실행까지의 단계이다.

위에서 설명한 아래 2개의 명령어를 매번 수행하기 번거로울 것이다.

 

set FLASK_APP=flaskTest

set FLASK_ENV=development

 

따라서 이 명령어들을 기존에 생성했던 flaskTest.cmd(배치파일) 에 넣어줘서 가상 환경 진입 명령어 수행시 같이 수행되도록 처리해 볼 것이다.

 

--> 배치파일 수정

@echo off
D:\pythonPrj\FlaskTest
set FLASK_APP=flaskTest
set FLASK_ENV=development
D:\venvs\prj1\Scripts\activate

 

--> 이제 flaskTest 명령어를 수행하면, 가상환경 진입과 동시에 위 2가지 환경변수 설정도 동시에 수행이 가능해졌다.

--> PC를 종료하고 다음날 다시 개발을 할 때와 같이, 해당 환경변수가 초기화 되는 경우에는 간단하게 flaskTest 명령어만 다시 입력해주면 된다.(이미 가상환경에 진입한 상태여도 가능하다)


 

 

 

 

 

2. 디렉토리 구조 잡기

--> 현재 우리는 시작점이 되는 파일인 flaskTest.py파일이 루트 디렉토리에 있는 상태이다.

--> 파이썬 프로젝트는 루트에 있는 해당 파일을 시작점으로 인식하기도 하지만,

--> [APP이름] -> __init__.py 에 있는 파일을 시작점으로 인식하기도 한다.

--> 이후에 Routing 설정, DB설정 등을 위해 디렉토리 구조를 잡아야 하므로,

--> [APP이름] -> __init__.py 와 같은 형태로 디렉토리를 변경할것이다.

 

--> 위와 같이 정상적으로 실행되는 것을 볼 수 있다.

--> 이후 [APP이름] 폴더 내 아래와 같은 폴더들을 추가해주자

(1) views

(2) templates

(3) static

 

각 폴더에 대해 설명하면 아래와 같다.

(1) views

라우팅을 위한 폴더. API서버로써 동작하는 Flask APP에서 모든 URL을 한 파일에서 관리하면 가독성 및 개발 효율이 떨어지므로, views라는 폴더에 URL별로 파일을 만들어 관리한다.

 

(2) templates

이 폴더는 Flask가 API 서버로써만 동작한다면 굳이 필요가 없는 폴더이다. 하지만 해당 서버에 접속했을 때, 브라우저에 화면을 보여주고 싶다면, 이 templates 폴더 내 HTML파일을 추가하여 관리한다.

 

(3) static

화면단에 필요한 css, javascript, 이미지 파일들이 들어가는 폴더이다. 이 또한 Flask가 API서버로써만 동작한다면 필요 없는 폴더이다.

 

 


 

마무리

여기까지 Flask 설치 및 구동, 디렉토리 구조 정리까지 완료하였습니다.

다음 포스팅에서는 URL별 라우팅 기능, HTML페이지 작성 및 css,js적용, DB연동까지 알아보도록 하겠습니다.

 

 

 

-퍼가실 때는 출처를 꼭 같이 적어서 올려주세요!

 

반응형