[플라스크] 플라스크 기초

참조


플라스크 프로젝트 구조

  • 예제로 만들 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 파일의 역학을 대신할 것입니다.
  • pybo 패키지 안에 구성해야 하는 파일과 디렉터리는 다음과 같습니다.

데이터베이스를 처리하는 models.py 파일

  • 파이보 프로젝트는 ORM(object relational mapping) 을 지원하는 파이썬 데이터베이스 도구인 SQLAlchemy 를 사용합니다.
  • SQLAlchemy는 모델 기반으로 데이터베이스를 처리합니다.

서버로 전송된 폼을 처리하는 forms.py 파일

  • 파이포 프로젝트는 웹 브라우저에서 서버로 전송된 폼을 처리할 때 WTForms 라는 라이브러리를 사용합니다.
  • WTForms 역시 모델 기반으로 폼을 처리합니다.
  • 그래서 폼 클래스를 정의할 forms.py 파일이 필요합니다.

화면 구성하는 views 디렉터리

  • pybo.py 파일에 작성했던 hello_pybo 함수의 역할은 화면 구성입니다.
  • views 디렉터리에는 바로 이런 함수들로 구성된 뷰 파일들을 저장합니다.
  • 파이보 프로젝트에는 기능에 따라 main_views.py, question_views.py, answer_views.py 등 여러가지 뷰 파일을 만들 예정입니다.

CSS, 자바스크립트, 이미지 파일을 저장하는 static 디렉터리

  • static 디렉터리는 파이보 프로젝트의 스타일시트(.css), 자바스크립트(.js), 그리고 이미지 파일 등을 저장합니다.

HTML 파일을 저장하는 templates 디렉터리

  • templates 디렉터리에는 파이보의 질문 목록, 질문 상세 등의 HTML 파일을 저장합니다.
  • 앞에서 살펴본 파이보 프로젝트 구조에는 index.html 파일만 있습니다.
  • 하지만 파이보 프로젝트가 진행되면서 question_list.html, question_detail.html 과 같은 템플릿 파일을 계속 추가할 예정입니다.

파이보 프로젝트를 설정하는 config.py 파일

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

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY