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 : 파이보 프로젝트를 설정하는 파일. 환경 변수, 데이터베이스 등의 설정을 이 파일에 저장한다.