Flask 프로젝트 구조
flask는 프로젝트의 구조를 어떻게 하라와 같은 규칙이 없다. 그래서 프로젝트를 구성할 때 생각을 많이 해야 한다.
플라스크 프로젝트 구조
├ pybo/
│ ├ __init__.py
│ ├ models.py
│ ├ forms.py
│ ├ views/
│ │ └ main_views.py
│ ├ static/
│ │ └ style.css
│ └ templates/
│ └ index.html
└ config.py
pybo.py 파일은 pybo 패키지로 변경할 수 있다. pybo 디렉터리 안에 있는 __init__.py
파일이 pybo.py 파일의 역할을 대신할 것이다.
-
models.py : 데이터베이스를 처리하는 파일. 파이보 프로젝트는 ORM 을 지원하는 파이썬 데이터베이스 도구인 SQLAlchemy를 사용한다. SQLAlchemy는 모델 기반으로 데이터베이스를 처리한다. 모델 클래스들을 정의할 models.py 파일이 필요하다.
-
forms.py : 서버로 전송된 폼을 처리하는 파일. WTForms라는 라이브러리를 사용하여 웹 브라우저에서 서버로 전송된 폼을 처리한다. WTForms 역시 모델 기반으로 폼을 처리한다.
-
views : 화면을 구성하는 디렉터리. 함수들이 작성된 여러 가지 뷰 파일을 저장한다.
-
static : CSS, JS, Image 파일을 저장하는 디렉터리
-
templates : HTML 파일을 저장하는 디렉터리
-
config.py : 파이보 프로젝트를 설정하는 파일. 환경 변수, 데이터베이스 등의 설정을 이 파일에 저장한다.