Model: View: Model에 있는 data를 Web Server가 가지고와서 사용자에게 보내 줄 때, 여기에서 데이터를 적절하게 가공한 후에 사용자에게 보내준다.Template(controller): Model과 View를 수정, 업데이트 해주는 것을 담당
더 공부해보자
첨부 : http://www.essenceandartifact.com/2012/12/the-essence-of-mvc.html

Web Browser-> URL Dispatcher
Web Browser: 유저들이 사용하는 웹 브라우져 URL Dispatcher -> View
URL Dispatcher: 유저들이 요청한 URL을 분석한다. 분석한 URL을 적합한 view로 보내준다View-> Model
view는 사용자의 요청에 받아서 온 분석된 URL을, Database의 어디에 접근해서 어떠한 데이터를 가공해야 할지를 model 에게 전달해주고,Model -> Databse -> Model
Model은 실질적으로 database와 커넥션을 통해 data를 가져오고, database에서 가져온 data를 Model로 보낸다.Model -> View
database 에서 가져온 data를 Model 이 view로 전달 하고,View-> Template
View가, 실질적으로 유저들에게 보여줄 데이터를 Template에게 전송.Template안에서 Java Script나 HTML같은 다양한 형태의 유저 인터페이스(UI)를 만들어서 Web Browser로 넘겨주게 된다특정 영역을 분리하는게 중요하기 때문에 이렇게 과정들이 좀 복잡해 보이는 것
MVC 이전의 모든 로직이 한 곳에 뭉쳐있었고, 이런 경우에는 다수의 개발자가 한 번에 작업을 하게 되면 큰 문제가 발생해왔다. 그렇기 때문에, 프로젝트가 커지면 커질수록 각 영역을 개발자가 따로 담당하는 것이 효율적입니다.

Clint -> Web Server(Nginx / Apache) ->WSGI(Web Server Gateway)Clint는 우리가 만든 Web Application을 보기위해서 Request한다Clint에서 어떤 request를 하면, Web Server가 맞이 request를 맞이하고,WSGI는 Web Server와 Django 를 연결 시켜서 request 쭉 들어오게 한다.WSGI(Web Server Gateway Interface) 는Web Server와 Django framework을 연결해주는 역할WSGI(Web Server Gateway Interface) -> URL SEROLUTION(urls.py)request가 쭉 들어오게 되고,원하는 특정 주소를 요청하는데,URL SEROLUTION(urls.py) url파일에서 특정 주소를 잘게 나누어 주고(파싱), 잘게 나누어진 주소들은 역할에 맞게view로 이동 된다.urls.py는 정규 표현식으로 구성되어있고, 그 정규 표현식에 맞게 View로 보내진다.URL SEROLUTION(urls.py) -> View(views.py) -> MODEL(models.py) -> View(views.py)View에서는 역할에 맞는 기능을 개발하는 것을 한다.views.py에서 주로 파이썬 코드를 작성할꺼다 우리가 ! !!View에서는 Model이 database 에서 가져온 data를 view로 가지고 와서 에서 가공한다Web Application에 각각 맞는 작업을 하기위해 우리가 코드를 작성할 것임
Model에 변수만 지정하게 되면database와 연결하는Manager라는 부분이 알아서 다 해주게 된다.- 따로
SQL Query를 작성할 필요는 없고, 변수만 다루면 된다 ~ ! !!**개발자는 변수만 잘 다루면
database로부터data를 가져와서View에서 가공을 할 수 있다.
View(views.py) -> Template(HTML)Model 에서 data를 view로 가져와서 가공을 한 후, 사용자들에게 보여주기위한 URL작업을 위해 TEMPLATE(HTML) 로 전달한다.Template에서 사용자에게 보여주기 위한 URL작업을 한 후, 다시 Web Server로 전송하게 된다.
- 이때,
Template은HTMl파일인데 이 파일안에 로직을 삽입할 수 있다.
- 컨트롤과 관련된 다양한 로직인데 / 대단한건 아니고,
View에서 받은 data 들이 어떻게HTML파일에 잘 보여줄지에 대한script file들이 이Template에 담겨지게 될것- 이때 다양한 퐁을 작성할것 이다.
ex)HTML을 통해서 파일을 입력한다던지, 막 게시물 작성할 때 있는form들 있잖아 ? 그런거 그런걸 쉽게 만들 수 있다. 글고form을 이용해서model과Template에있는 사용자들이 쓰는UI가 쉽게 관리가 될꺼당
view에서 보내준 data를 template에서 UI(User Interface)에 적절하게 구성 해준다.Template ->Web Server -> ClientWeb Server로 갈꺼고 -> Web Server는 Client에게 돌려주게된다.
Client는 이러한 과정을 거쳐야 화면을 볼 수 있다.
Project = 하나의 Web SiteProject들은 다양한 기능들이 있을꺼다.tutorial이라는 Project 생성)$ django-admin startproject tutorial
settings.py는 프로젝트 전체를 관리하는 설정들이 있는것이라고 생각하자
$ ./manage.py startapp community

