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
-> Client
Web Server
로 갈꺼고 -> Web Server
는 Client
에게 돌려주게된다.
Client
는 이러한 과정을 거쳐야 화면을 볼 수 있다.
Project
= 하나의 Web Site
Project
들은 다양한 기능들이 있을꺼다.tutorial
이라는 Project 생성)$ django-admin startproject tutorial
settings.py
는 프로젝트 전체를 관리하는 설정들이 있는것이라고 생각하자$ ./manage.py startapp community