Model

- 안전하게 데이터를 저장


View

- 데이터를 적절하게 유저에게 보여줌


Control , Template(Django)

- 사용자의 입력과 이벤트에 반응하여 Model 과 View 를 업데이트


- MVC 구조




MVC Roles and Relationships Diagram


model - controller - view - user


1. user가 controller 를 통해 input 이나 event를 조작을 함

2. controller는 model 에 있는 정보를 가공하여 view에 보냄

3. view를 또 user에게 보내주던지, 유저가 input을 하면 controller가 model 에게 보내는 유기적인 관계




MTV

Django 의 경우 controller 대신 template 가 들어가는 형태이다.

나머지는 그대로 쓰는 형태가 된다.


Django

Python에서 사용하는 가장 대표적인 웹 프레임웍


Django Basic Architecture

Django Architecture(MVC Pattern)


Web Browser 를 통해 action 이 발생하면 녹색 Django 서버로 들어오고

URL Dispatcher 가 user가 요청한 URL를 분석을 함

분석한 URL에 적합한 View를 보내주게되고 View는 사용자에게 요청을 받아서 어디 데이터에 접근해서 가공할지 알려주고 Model 과 connection 을 하고 data를 model 에 보내게되고 view는 실질적으로 보여주를 거를 template 에게 전송 template은 javascript 나 html 등 다양한 userinterface를 User에게 보여주게 된다.



Django 는 MODEL 에 변수를 만들고 MANAGERS 를 통해 DataBase에 관한 접근 부분을 상당히 줄여놔서 쉽게 DataBase의 Data를 가지고 와서 View에서 가공할 수 있다.


View는 보여지는 부분이기때문에 UI 작업을 해야하고, form부분도 개별적으로 수정하여 보여주게된다.

Template는 html 파일이고 로직(control 등)을 삽입할 수 있고, VIew에서 받은 data를 어떻게 html파일에 잘 보여줄지에 대한 script파일들이 template에 담게된다.


Django 는

1.WSGI(wsgi.py)

2.SETTING(settings.py)

3.URL RESOLUTION(urls.py)

4.VIEW(views.py)

5.MODEL(models.py)

6.FORM(forms.py)

7.TEMPLATE(example.html)

로 개별적으로 다룰 수 있다.



settings.py

- 프로젝트 환경 설정 파일

  • DEBUG

- 디버그 모드 설정

  • INSTALLED_APPS

- PIP로 설치한 앱 또는 본인이 만든 APP을 추가

  • MIDDELWARE_CLASSES

- REQUEST와 RESPONSE 사이의 주요 기능 레이어

  • TEMPLATES

- Django Template관련 설정, 실제 뷰(html, 변수)

  • DATABASES

- 데이터베이스 엔진의 연결 설정

  • STATIC_URL

- 정적 파일의 URL(Css,. Javascript, image, etc.)



manage.py

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

  • 주요 명령어

startapp - 앱 생성

runsterver - 서버 실행

createsuperuser - 관리자 생성

makemigrations app - app의 모델 변경 사항 체크

migrate - 변경 사항을 DB에 반영

shell - 쉘을 통해 데이터를 확인

collectstatic - static파일을 한곳에 모음





본 게시글은 작성하면서 공부하는 글이기때문에 미숙한 부분이 많습니다. 잘못된 사항이 있다면 코멘트를 남겨주시면 적극참고하여 공부해서 수정하겠습니다.


그림 출처 : http://www.essenceandartifact.com/2012/12/the-essence-of-mvc.html

Posted by analysis_data
,