[Flask] 플라스크 기초 다지기

PSLeon ㅣ 2023. 8. 13. 15:44

반응형

플라스크 기초 다지기

이전 포스팅(https://psleon.tistory.com/147)에서는 가상 환경에서 플라스크 프로젝트를 생성하고 실행시켜 보는 실습을 하였다.

지금까지 진행한 파이보 프로젝트는 projects/myproject 디렉터리 아래에 pybo.py 파일만 생성한 상태이다. 하지만 어느정도의 규모를 갖춘 프로젝트를 만들고자 한다면 프로젝트 구조를 잘 만들어야 한다. 하지만 Django와 같은 파이썬 웹 프레임워크와는 다르게 Flask에서는 프로젝트 구조에 대한 규칙이 없다. 그래서 플라스크에서는 프로젝트를 구성할 때 많은 생각을 해야 한다.

 

플라스크 프로젝트 구조

포스팅을 이어 나가며 제작할 파이보 프로젝트의 전체 구조는 대략 아래와 같다.

 

pybo/
├── __init__.py
├── models.py
├── forms.py
├── views/
│   └── main_views.py
├── static/

│   └── style.css
├── templates/
│   └── index.html
└── config.py

 

pybo.py 파일은 pybo 디렉터리 안에 있는 __init__.py 파일이 그 역할을 대신할 것이다.

자, 이제 pybo 패키지 안에 구성해야 하는 파일과 디렉터리를 간단히 살펴보자.

 

models.py 파일

models.py는 데이터베이스를 처리하는 파일이다. 파이보 프로젝트는 ORM(object relational maaping)을 지원하는 DBMS인 SQLAlchemy를 사용한다. 즉, 모델 클래스들을 정의할 models.py 파일이 필요하다.

 

forms.py 파일

파이보 프로젝트는 웹 브라우저에서 서버로 전송된 폼을 처리할 때 WTForms라는 라이브러리를 사용하는데 이 라이브러리 역시 모델 기반으로 폼을 처리하므로 forms.py 파일이 필요하다.

 

views 디렉터리

views 디렉터리에는 함수들이 작성된 여러 가지 뷰파일을 저장한다. 이러한 views 디렉터리는 화면을 구성하는 파일들이다.

 

static 디렉터리

static 디렉터리는 CSS(.css), 자바스크립트(.js), 이미지(.jpg, .png)파일을 저장한다.

 

templates 디렉터리

templates 디렉터리에는 파이보의 질문 목록 조회, 질문 상세 조회 등의 HTML 파일을 저장한다.

 

config.py 파일

config.py 파일은 파이보 프로젝트의 환경 변수, 데이터베이스 등의 설정을 이 파일에 저장한다.