::: wsgi.py(WSGI, web server gateway interface)
- 브라우져에서 어떤 요청을 보내면 우선 WSGI 쪽으로 신호가 들어옴
- 사실 이 파일은 크게 건드릴 이유가 없으며, 존재하고 있다정도만 알고 있으면 됨
웹서버와 장고를 적절하게 결합
시켜주는 역할(적절한 설정만 해주면됨)
::: urls.py(URL RESOLUTION)
wsgi.py
를 거쳐서 urls.py
에서 요청을 받게됨
- 그리고는 특정한
views.py
로 보내주게됨
::: views.py(VIEW)
- 이 부분이 가장 우리가 많이 코드를 작성하게될 부분
- 뷰에서 "사용자 요청에 의해서 데이터베이스에 입력을 하던지,
아니면 데이터베이스로부터 데이터를 가져와서 사용자에게 응답을 할 것인지"등의 결정(판단)을 함
- 그리고는
model.py
에 신호를 보내게됨
::: model.py(MODEL)
- 데이터베이스로부터 어떤 데이터를 가지고올때 모델에 변수만 지정하게되면
뒤에서 데이터베이스와 연결하는 부분을 MANAGERS
라는 것이 알아서 해줌
- 따라서 sql query를 따로 작성할 필요가 없고, 변수만 다루면 데이터베이스로부터 데이터를 가져와서 뷰에서 가공이 가능하다.
::: example.html(TEMPLATE)
- 사용자에게 보여주기 위한 UI 작업
- html 파일 안에 로직을 삽입할 수 있음
- 복잡한 로직은 아니고, 어떤 뷰에서 받은 데이터를 html에 어떻게 잘 보여줄지에 대한 스크립트가 작성되게 된다.
::: settings.py(프로젝트 환경 설정 파일)
- 디버그 모드 설정
- Ture & False(개발 or 배포 설정)
- pip로 설치한 앱 혹은 본인이 만든 app을 추가
- 앱을 추가하게되면 INSTALLED_APPS에 꼭 추가를 해줘야함
- request와 response 사이의 주요 기능 레이어
- 크게 신경 안써도 되지만, 인증 및 보안과 관련된 기능을 다루고 있음
- django template 관련 설정, 실제 뷰(html, 변수)
- 데이터베이스 엔진의 연결 설정
- 데이터베이스 설정 파일이라고 이해하면 쉽다
- DB엔진, DB이름, 유저명, 비밀번호, 호스트, 포트 등을 다룸
- 정적 파일의 URL(css, javascript, image, etc.)과 관련된 설정 파일
::: manage.py(프로젝트 관리 명령어 모음)
-
주요명령어
- startapp :: 앱생성
- runserver :: 서버 실행
- createsuperuser :: 관리자 생성
- makemigrations app :: app의 모델 변경 사항 체크
- migrate :: 변경 사항을 DB에 반영
- shell :: 쉘을 통해 데이터를 확인
- collectstatic :: static 파일을 한 곳에 모음