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