Django 개념 정리

NaHyun Kim·2020년 5월 4일
0

MVC & MTV

  • Model : 안전하게 데이터를 저장

  • View : 데이터 적절하게 유저에게 보여줌 (유저가 원하는 형태로)

  • Control, Template (Django) : 사용자의 입력과 이벤트에 반응하여 Model과 View를 업데이트
    (장고는 MTV 라고 함 > 같은 구조)

MVC 이전에는 다양한 코드가 한 곳에 들어가 있어서 하나를 잘못 건드리면 시스템 전체가 문제됐었다. 그래서 코드를 Model View Control로 분류하기 시작

Django의 개념

Client의 request는 django 프로젝트 안에 있는 urls.py에 처음으로 전달된다. urls.py에서 요청을 views.py로 보내고 저장되어 있는 데이터가 필요하다면 models.py에서 database를 가져와서 models.py로 데이터를 보내고 models.py에서 views.py로 실질적인 데이터를 보낸다. view는 template로 유저에게 보여줄 데이터를 보내고 template가 js나 html과 같은 다양한 형태의 UI형태로 만들어서 Client에게 응답하는 형태가 django의 간단한 흐름이다.

  • WSGI (WebServer Gateway Interface) : 웹서버 & 장고와의 인터페이스 제공

  • URL RESOLUTION: 정규표현식으로 작성된 VIEW의 URL로 연결

  • VIEW: 해당 요청에 대한 요구사항 결정함

  • MODEL: 장고에서는 SQL 쿼리를 작성을 MANAGERS에서 관리를 해주기 때문에 MODEL에서 변수만 제공을 해주면 쿼리 작성이 필요 없음

  • TEMPLATE: 사용자에게 제공할 UI를 위한 작업 html파일 등의 script파일로 되어 있음

  • FORM: MODEL과 TEMPLATE 에 있는 사용자가 쓰는 UI를 쉽게 관리할 수 있게 함

Project와 App

프로젝트 생성

django-admin startproject 프로젝트명

app 생성

python manage.py startapp 앱이름

프로젝트 내부에 app 생성

Settings.py

  • DEBUG : 디버그 모드 설정 ex) 에러를 확인하고 싶을 때 True로 두면 변수 상태 확인 가능. 그러나 배포시에는 False로 설정해야함
  • INSTALLED_APPS : pip로 설치한 앱 또는 본인이 만든 app을 추가
  • MIDDELWARE_CLASSES : reqeust와 response 사이의 주요 기능 레이어 ex) 인증 보안
  • TEMPLATES : django template 관련 설정 , 실제 뷰(html,변수)
  • DATABASES : 데이터베이스 엔진의 연결 설정
  • STATIC_URL : 정적 파일의 URL(css,javascript,image등)

manage.py

주요 명령어

  • startapp - 앱 생성
  • runserver - 서버 실행
  • createsuperuser - 관리자 생성
  • makemigrations app - app의 모델 변경 사항 체크
  • migrate - 변경 사항을 DB에 반영
  • shell - 쉘을 통해 데이터를 확인
  • collectstatic - static 파일을 한곳에 모음

0개의 댓글