본 포스팅은 웹 프레임워크 Django(python) 개념 정리 영상을 참고하여 작성되었습니다.
MVC이 많이 알려져 있고 장고에서는 MTV를 사용한다. 두 개념은 동일하다.
Model
: 안전하게 데이터를 저장View
: 데이터를 적절하게 유저에게 보여줌(유저가 원하는 형태로 만들어서)Control, Template(Django)
: 사용자의 입력과 이벤트에 반응하여 Model과 View를 업데이트<왼쪽 구조도 설명>
이렇게 복잡한 과정을 거치는 이유는 특정 영역을 분리하는 게 효율적이기 때문이다.
<오른쪽 구조도 설명>
장고 웹 프로젝트를 생성하면 다양한 파일들이 생성된다. 녹색 파일이 실질적으로 다룰게 될 파일
django-admin startproject tutorial
manage.py 실행파일과 프로젝트 명으로 폴더 생성됨
settings.py
: 전체 프로젝트를 관리하는 설정이 담겨 있음./manage.py startapp community
admin.py
: 관리자 권한을 가지는 사용자가 볼 수 있는 페이지를 다루는 파일models.py
: 데이터 베이스 관련 역할views.py
: 데이터를 적절하게 가공프로젝트 환경 설정 파일
DEBUG
: 디버그 모드 설정, True - 개발 단계, 다양한 변수들의 상태 확인 가능 / False - 배포 시INSTALLED_APPS
: pip로 설치한 앱 또는 본인이 만든 앱 추가MIDDLEWARE_CLASSES
: request와 response 사이의 주요 기능 레이어TEMPLATES
: template 파일과 관련된 변수들을 조정하는 context, template를 검색하기 위한 기능, 폴더 위치 등을 다루는 설정파일(html, 변수)DATABASES
: 데이터베이스 엔진의 연결 설정STATIC_URL
: 정적 파일의 URL(css, javascript, image, etc.)프로젝트 관리 명령어 모음
startapp
: 앱 생성runserver
: 서버 실행createsuperuser
: 관리자 생성makemigrations app
: app의 모델 변경 사항 체크(변경 사항을 서버와 동기화할 수 있는 쿼리를 생성)migrate
: 변경 사항을 DB에 반영shell
: 쉘을 통해 데이터를 확인collectstatic
: static 파일을 한 곳에 모음ex) ./manage.py runserver 0.0.0.0:8080