웹 프레임워크 Django 개념 정리

김태준·2023년 3월 15일
0

Django

목록 보기
1/1

✅ MVC pattern

✨ MVC & MTV

디자인 패턴 중 하나로 프로젝트 구성 요소를 Model(모델), View(뷰), Controller(컨트롤러) 3가지로 역할에 따라 구분하는 패턴 (Django에선 Controller 대신 Template용어로 설명)

디자인 패턴 : 효율적으로 코드를 작성하는 규칙, 프로젝트 구조
  • Model : 데이터를 안전하게 저장
  • View : 데이터를 적절하게 유저에게 보여줌
  • Control, Template(Django) : 사용자의 입력과 이벤트에 반응하여 Model과 View를 업데이트

참고사항

USER(사람, 컴퓨터 클라이언트)가 controller에서 다양한 이벤트, Input을 조작하는데 이때 controller는 model에서 데이터를 가져와 view를 통해 보여주는 방식으로 순회한다.

✅ Django flow


1. 유저들이 사용하는 웹 브라우저에서 이벤트 발생 (url click, form에 데이터 입력하는 action 등)
2. url dispatcher로 요청한 url 분석 진행 후 적합한 뷰로 보여줌
3. VIEW는 사용자 요청을 받아 어떤 DB에 접근해서 어떤 데이터를 가공할 지를 알려주고, MODEL에서 실제 DB와 Connection하여 데이터를 가져옴
4. DB에서 모델로 데이터를 보내준 후 VIEW를 통해 사용자에게 보여지는 데이터를 template으로 전달하여 HTML, JAVAScript 등 다양한 형태의 유저 인터페이스를 생성해 웹 브라우저로 전달

💯 과정이 복잡한 이유?

특정 영역을 분리(로직을 분리)하여 다수의 인원이 협업하는데 문제가 없도록 하기 위함.
구체적인 django web project
1. 웹 프로젝트 생성 시 다양한 파일들이 생성된다. (녹색 : 실질적으로 다루는 파일)
2. browser에서 요청을 보내면 WebServerGateway로 신호가 입력된다.
(WSGI : 웹서버와 장고 연결해주는 커넥터 느낌)
3. VIEW(views.py) : 파이썬 코드를 많이 작성하는 파트 (DB로부터 데이터를 가져와 사용 or DB에 데이터를 입력 등등)
4. MODEL : DB로부터 데이터를 가져올 때 class 객체를 활용
5. VIEW에서 가공한 데이터를 사용자에게 보여주기 위한 UI작업을 TEMPLATE를 만들어서 WS로 전송
TEMPLATE : HTML파일인데, 로직 삽입이 가능 (컨트롤을 포함한)

🧨 Project & App

프로젝트 생성 : $ django-admin startproject tutorial
app 생성 : $ ./manage.py startapp commnuity (프로젝트 내부에 다수의 app생성 및 타 프로젝트 활용에도 사용됨)

🧨 settings.py

: 프로젝트 환경 설정 파일

  • DEBUG : 디버그 모드 설정 (True로 놓고 변수들의 error상태 확인 가능, 서비스 배포시엔 False)
  • INSTALLED_APPS : pip로 설치한 앱, 본인이 만든 app 추가(third-party app 사용 가능)
  • MIDDELWARE_CLASSES : request와 response 사이의 주요 기능 레이어
  • TEMPLATES : django template 관련 설정, 실제 뷰(html, 변수)
  • DATABASES : DB 엔진의 연결 설정
  • STATIC_URL : 정적 파일의 url (css, javascript, image, etc.)

🧨 manage.py

: 프로젝트 관리 명령어 모음

  • 주요 명령어
    startapp : 앱 생성
    runserver : 서버 실행
    createsuperuser : 관리자 생성 (초기 단계 必)
    makemigrations app : app의 모델 변경 사항 체크
    migrate : 변경 사항 DB에 반영
    shell : 쉘을 통해 데이터 확인
    collectstatic : 정적 파일을 한 곳에 모음
    ex ) ./manage.py runserver 0.0.0.0:8080 (default 값, 외부 접근 허용 가능 0때문에)

✅ Django 실습

django 개발 환경

: django를 로컬에 설치하여 application을 개발, 실행, 테스트할 수 있는 환경을 의미

  • ) django는 4가지 DB를 지원(Postgre, MySQL, Oracle, SQLite) 디폴트:SQLite
  1. cmd에서 pip install django로 설치
    (pip 명령어가 작동되지 않는다면, 환경변수 설정으로 들어가 python파일의 scripts가 path로 포함되었는지 확인할 것!)
  2. django 설치 완료 후 Succssfully installed django-x.x.x라는 메시지 출력됨
  3. cmd에서 django-admin startproject 프로젝트명 으로 프로젝트 생성, app 생성은 ./manage.py startapp 앱이름 으로 생성
  4. 프로젝트명 tree 라는 명령어로 구조 확인 가능
profile
To be a DataScientist

0개의 댓글