일반적인 flask 폴더 구조
board/
| app.py
| config.py
| requirements.txt
| migrations/
| venv/
| board_app/
| __init__.py
| models/
| __init__.py
| model.py
| schemas/
| __init__.py
| schema.py
| static/
| css/
| js/
| detail.js
| main.js
| templates/
| detail.html
| main.html
| views/
| __init__.py
| route.py
| apis/
| __init__.py
| api.py
- app.py: Flask 애플리케이션의 진입점입니다.
- config.py: Flask 애플리케이션의 설정을 정의하는 파일입니다.
- requirements.txt: 프로젝트에 필요한 Python 패키지들의 목록을 담은 파일입니다.
- migrations/: 데이터베이스 마이그레이션 스크립트를 저장하는 디렉토리입니다.
- venv/: 가상 환경 디렉토리입니다.
- board_app/: Flask 애플리케이션의 메인 모듈입니다.
- models/: 데이터베이스 모델을 정의하는 모듈들을 저장합니다.
- schemas/: 데이터 직렬화를 위한 Marshmallow 스키마를 정의하는 모듈들을 저장합니다.
- static/: 정적 파일들(css, js 등)을 저장하는 디렉토리입니다.
- templates/: HTML 템플릿 파일들을 저장하는 디렉토리입니다.
- views/: Flask 뷰 함수를 정의하는 모듈들을 저장합니다.
- apis/: API 엔드포인트를 정의하는 모듈들을 저장합니다.
venv와 migrations 폴더만 자동으로 생성되며 나머지는 직접 생성해야합니다. 하나하나 생성해야하는 번거러움이 있지만 그만큼 자유도가 높습니다.
__init__.py 란
__init__.py 파일은 파이썬에서 패키지로써 인식되도록 하는 특별한 파일입니다. 이 파일은 해당 디렉토리가 패키지임을 나타내며, 패키지를 초기화하는 데 사용될 수 있습니다.
주로 다음과 같은 목적으로 사용됩니다.
1. 패키지 초기화: 패키지에 필요한 초기화 코드를 작성합니다. 이 코드는 패키지를 사용할 때 자동으로 실행됩니다.
2. 모듈 임포트: 패키지 내의 모듈들을 다른 파일에서 임포트할 수 있도록 합니다.
3. 변수, 함수, 클래스 등 정의: 패키지 수준의 변수, 함수, 클래스 등을 정의할 수 있습니다.
'프로그래밍 일기 > Python & Flask' 카테고리의 다른 글
Python html to pdf (render_template, pdfkit, wkhtmltopdf) 방법 (0) | 2024.05.03 |
---|---|
Python Flask 게시판 CRUD 웹 프로젝트 구현, 기본 구조 이해 (0) | 2024.03.05 |