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연동까지 알아보도록 하겠습니다.
-퍼가실 때는 출처를 꼭 같이 적어서 올려주세요!
'Dev > [python]' 카테고리의 다른 글
[python] Linux Ubuntu 에서 Python 가상환경 생성. 활성화/비활성화 (0) | 2021.12.17 |
---|---|
[Getting started Flask] 플라스크 시작해보기 - 1 (0) | 2021.07.20 |
[파이썬IDE] PyCharm 설치하기 (0) | 2021.07.20 |