Python/Django

[Django] 프로젝트 구조 분석

yubi5050 2022. 5. 30. 14:48

Django 1개의 프로젝트에 1개의 APP의 형태의 프로젝트 구조이다.

출처 : https://studygyaan.com/django/best-practice-to-structure-django-project-directories-and-files

 

모듈(.py) 별 기능

  • settings.py : django 프로젝트 config 설정 파일. DB, App (Module), Auth, Templates, Path 등 기본 설정 담당
  • urls.py : url 별 페이지 연동 관리 파일 (유사 route를 담당하는 파일)
  • asgi.py, wsgi.py
    - Web Server Gateway Interface로 서버와 응용 프로그램이 통신하는 인터페이스.
    - 클라이언트로 요청 수신 → 애플리케이션으로 전달 , 애플리케이션 응답 → 클라이언트로 보내는 역할 수행
  • admin.py : 관리자 role로 model 을 관리하는 역할
  • apps.py : 앱에 대한 기본 설정
  • models.py : DB 모델 (ORM)에 대한 정보 정의 및 저장하는 파일
  • views.py
    - 실제 비즈니스 로직이 동작하게 하는 부분. 
    - 사용자에게 어떤 Response를 줄 것인지가 구현 되어야 함.
  • test.py : 단위 테스트(Test code 작성) 구현
  • manage.py : Django Web 서버 실행 및 사이트 관리

 

Structure 

Project // project root
├── project_name (config) // configuration root
│   ├── settings.py       // Project Setting Config 
│   ├── urls.py           // Gather All Urls
│   └── asgi.py, wsgi.py  // Sync, Async 
│
├── app1/                 // App name
│   ├── admin.py          // App Admin roles
│   ├── apps.py           // APP config
│   ├── urls.py           // APP URL Endpoints
│   ├── models.py         // DB ORM Modeling
│   ├── views.py          // App Controls Function
│   ├── tests.py          // App test code 
│   ├── migrations/       // DB File 
│   └── ...
│
├── templates/            // Web Page
│   └── <app_name>        // APP Folder
│       ├── <page>.html   // HTML
│       └── ...           
│
│── static/               // static Files
│   ├── css/              // CSS
│   └── js/               // Javascript
│
└── manage.py             // server manager