장고 프로젝트 구조

전체 트리 구조

config 폴더

  • 프로젝트 설정과 관련된 파일들

asgi.py

  • ASGI( Asynchronous Server Gateway Interface )프로토콜 지원
  • websocket 연결, 실시간 데이터 처리 등 비동기적인 요구사항 처리

setting.py

  • 설정 파일
  • 환경 설정, 데이터베이스 설정, 정적 파일(css, js) 및 미디어 파일 경로, 템플릿 설정 등등

urls.py

  • url 라우팅 관리
  • 클라이언트 요청이 어느 뷰 함수로 전달되어야 하는 지 결정하는 데 사용

wsgi.py

  • WSGI( Web Server Gateway Interface ) 서버와 장고 프로젝트를 연결
  • 장고 어플리케이션 웹 서버에 배포 

 

 

pybo 폴더

  • 장고 프로젝트에서 생성된 하나의 어플리케이션

migration 폴더

  • 어플리케이션의 데이터베이스 스키마의 변경 사항을 관리하는 폴더
  • 데이터 모델의 변경 사항을 추척, 데이터베이스에 반영

admin.py

  • 관리자 페이지(admin site)에서 데이터 모델을 관리할 수 있도록 등록하는 파일

apps.py

  • 어플리케이션의 설정 정의
  • 구성 요소(이름, label, 별칭) 정의, 구동 방식을 제어

models.py

  • 어플리케이션의 데이터 모델 정의
  • 데이터베이스 테이블 생성, 각 테이블의 구조 정의

tests.py

  • 프로젝트 테스트 코드 작성
  • 장고의 테스트 프레임워크를 사용하여 어플리케이션의 작동을 확인
  • 파일에 실행할 함수를 작성 후, 아래 명령어를 통해 제대로 작동하는지 혹은 오류가 있는지 확인할 수 있다.  
python manage.py test <app_name>

views.py

  • 프로젝트에서 어플리케이션의 뷰(View)를 정의
  • 뷰는 웹 애플리케이션에서 사용자 요청을 처리, 적절한 데이터를 가져와 사용자에게 보여줌
  • 장고에서는 뷰가 어플리케이션의 요청을 처리하고 HTTP 응답을 반환하는 함수로 정의됨

 

 

db.sqlite3

  • SQlite 데이터베이스 파일

 

 

manage.py

  • 프로젝트의 중요한 관리 도구 파일
  • 개발 서버 실행, 어플리케이션 생성, 데이터베이스 마이그레이션, 슈퍼유저 생성
개발 서버 실행
$ python manage.py runserver

어플리케이션 생성
$ python manage.py startapp <app_name>

데이터베이스 마이크레이션
$ python manage.py migrate

슈퍼유저 생성
$ python manage.py createsuperuser