프로그래밍

Flask로 개발 프로젝트 시작하기

손가든 2024. 7. 29. 14:55

깃허브 PR - Tistory 블로그 포스팅 연동 기능 프로젝트를 진행하기 위해 가볍게 프로젝트를 시작할 수 있는 python의 flask를 선택했다.

 

먼저 Flask 프로젝트를 수행하는 절차를 기록하고 수행하는 절차의 각각 목적을 학습하여 정리하겠다.

 

 


 

Flask 프로젝트 구축

먼저 아래 명령어를 순서대로 터미널에 입력한다.

# 가상 환경 생성
python -m venv .venv

# 가상 환경 활성화
# Windows
venv\Scripts\activate
# MacOS/Linux
source .venv/bin/activate

# Flask 설치
python3 -m pip install flask

 

 

처음에 블로그보고 그냥 가상환경 내에서 pip install flask로 flask를 설치한 후에 app을 실행하니 flask 인식을 못해서 고생좀 했다.

 

 

가상환경 내에서 설치하려면 앞에 python3 -m 을 붙여줘야 했다.

 

그냥 pip 를 사용하면 시스템에 등록된 pip path에 따라서 가상환경 내의 pip를 호출 하지 않을 수 있지만, python3 -m 을 붙이면 반드시 가상환경 내의 pip를 호출하여 가상환경 내에 설치된다고 한다.

 


 

venv는 python의 가상환경을 구축하는 것으로, 해당 프로젝트 내에 파일로 존재하게 되는데

 

이 가상환경의 목적은 아래과 같다.

 

1. 파이썬의 버전을 독립적으로 관리하는 것

2. 의존성 자체 관리

3. 일관된 개발환경 제공

 

js의 node와 같은 역할이라고 생각하면 좋을 듯하다.

 

아무튼

 

flask로 서버를 만들어 웹 페이지를 배포한 적이 있었는데도, 다시 python 프로젝트를 수행하려 하면 bash에서 python 명령어가 인식되지 않는 말썽을 피운다.

 

이유는 python이 환경변수에 설정되있는 path가 해당 프로젝트의 터미널 위치랑 호환이 안되있기 때문인데

따라서 아래처럼 위치를 복사해주어 해결 가능하다.

 

which python3

echo "alias python={위 명령어를 통해 나온 경로}" >> ~/.zshrc

 

 

이 과정을 마치면 가상환경은 구축된 것이다.

 

그러면 flask에서 프로젝트의 기본 패키지 구조는 아래와 같이 인식된다.

 

my_flask_app/
    ├── venv/               # 가상 환경 폴더
    ├── app.py              # Flask 애플리케이션 파일
    ├── requirements.txt    # 의존성 파일
    ├── templates/          # HTML 템플릿 폴더
    │   └── index.html      # 예제 HTML 파일
    └── static/             # 정적 파일 폴더
        └── style.css       # 예제 CSS 파일

 

해당 패키지 구조에 따라 html 파일과 css파일로부터 웹 형태를 인식하고, app.py로부터 메인 로직을 수행한다.