2. 백엔드 세팅 - Flask, Git/Github | React & Flask Web app
■ React + Flask + GraphQL 웹 어플리케이션 프로젝트 전체 로드맵
React & Flask & GraphQL 웹앱 프로젝트 시작 🏁
이번에 리액트와 플라스크를 활용해 프로젝트를 할 기회가 생겼다. 거기에 GraphQL API에서 필요한 데이터들을 CRUD 해야 했는데, 이런 조합의 프로젝트 예시를 찾아보는 것이 쉽지 않았다 🥺 언젠
joy-able.tistory.com
■ Git repository 만들기
1. 새로운 repository 만들기
- Repository 만드는 부분은 위의 링크에서 똑같이 하면 된다 :) 이름만 다르게 설정하면 됨!
2. Git Clone
- 클론하는 과정은 똑같지만, VSC가 아닌 편의상 PyCharm에서 진행해본다. 파이썬을 기반으로한 플라스크 서버를 만드는 repository니 파이썬을 다루기 가장 편한 IDE 인 PyCharm, 개인적으로도 가장 편한 프로그램이다.
- 위의 링크에서 Git repository 주소를 복사하는 부분까지 똑같이 진행해준다.
- PyCharm > Git > Clone > URL에 복사한 주소 붙여넣기
■ Python 설치하기
Flask란?
플라스크는 많은 사람들이 '마이크로 웹 프레임워크 Micro Web Framework'라고 부른다. 프레임워크를 간결하게 유지하면서 확장할 수 있도록 만들었다는 뜻이다. 플라스크는 아래와 같은 간단한 코드 몇 줄로 완벽하게 작동하는 웹 프로그램을 만들 수 있기 때문에 유지가 간단하다. 하지만 장고와 달리 프레임워크 자체에 모든 기능을 포함하고 있지 않고, 필요할 때만 확장 모듈을 포함해가며 개발하기 때문에 가벼운 프레임워크라 할 수 있다. 그리고 덕분에 확장성이 좋다는 특징을 가지고 있다. (출처)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World"
if __name__ == "__main__":
app.run()
1. 파이썬 설치하기
Mac의 경우 파이썬 2.7이 기본적으로 설치되어 있지만 현재 주로 쓰는 버전은 파이썬 3.x 이상이다. 때문에 새로 깔아주는 것이 좋다.
- 컴퓨터에 있는 파이썬 버전 확인하기
$ python --version
- 터미널에서 최신 버전 Homebrew 설치하기
이 링크에서 최신 버전을 확인할 수 있다.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
그리고 맥 비밀번호를 누르면 설치 화면으로 넘어간다. (이때 비밀번호는 화면에 표시되지 않으므로, 비밀번호를 치고 바로 엔터를 누르면 된다)
- Python 설치하기
$ brew install python
■ Flask 개발 환경 준비하기
1. 파이썬 가상 환경 (Python Virtual Environment)
- Virtualenv는 독립적인 파이썬 환경을 만들어주는 툴이다. virtualenv로 만들어진 환경은 독자적인 설치 환경을 가지고, 이때 만들어진 환경은 다른 가상 환경으로부터 독립적이다. 위에서 설명했던 것처럼, 로컬 머신에는 파이썬 2가 설치되어 있는 대로 유지하고, 한 프로젝트만을 위해서 파이썬 3을 다운받고 싶은거라면 해당 프로젝트의 가상 환경 내에서 파이썬 3를 설치하면 된다. 이때 프로젝트 이외의 위치에선 파이썬 3가 설치되지 않는다.
- Virtualenv 설치
$ pip install virtualenv
- Virtualenv 사용
아래 명령으로 내 프로젝트의 디렉토리 안에 venv/라는 디렉토리가 생성된다. 이 venv/ 안에 이후 설치하는 모든 dependency들이 설치되는 것.
// 나의 프로젝트로 이동
$ cd my-project/
// virtualenv 가동
$ virtualenv venv
- venv 활성화
$ source venv/bin/activate
// 비활성화
$ deactivate
- 필요한 모듈 다운
venv를 활성화하고 난 다음에는 터미널 프롬프트 시작 부분에 (venv) 가 나타난다. 이제 가상 환경에 들어와있다는 것을 의미하고, 이걸 확인하고 모듈들을 다운받으면 된다.
$ pip install <package>
// 가상 환경에서 플라스크 설치하기
$ pip install Flask
- venv/ 디렉토리는 .gitignore 파일에 넣는 것도 잊지 말기!
설치한 모듈들을 굳이 버전 컨트롤에 포함시킬 필요가 없다.
2. 플라스크 서버 실행하기
- 어플리케이션을 생성하는 코드를 작성한다.
프로젝트 디렉토리에 app.py라는 파일에 아래 코드를 쓰면 된다.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World"
if __name__ == "__main__":
app.run()
- 가상 환경에서 플라스크 개발 서버 실행
$ flask run
- 아래와 같이 localhost:5000 또는 127.0.0.1:5000 에서 Hello World 가 제대로 출력되면 서버가 제대로 작동한다는 뜻!
3. Error handling
- Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.
-> 위의 오류 메시지는 "FLASK_APP 환경 변수 설정"을 해주지 않아 발생하는 에러이다. flask run 명령 시, 플라스크가 app.py 라는 어플리케이션 생성 코드를 가지고 있는 파일을 읽을 수 있도록 안내해주려면 이 설정이 필요하다.
-> 맥의 경우 아래 명령으로 기본 어플리케이션 파일을 설정할 수 있다.
$ export FLASK_APP=app
- WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
-> 플라스크 서버 실행 환경이 개발 환경이 아닐 때 뜨는 경고이다. 아래 명령으로 플라스크 서버 실행 환경을 개발 환경으로 바꿀 수 있다.
$ export FLASK_ENV=development
$ flask run
* Serving Flask app "app.py" (lazy loading)
* Environment: development
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 202-513-618
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)