Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

체대출신 코더의 개발자 성장기

장고-MTV 모델 본문

CodeStates/TIL

장고-MTV 모델

미토콘크리트 2019. 7. 25. 13:36

초기의 웹 페이지 백엔드코드의 형태는 모든 코드가 하나로 합쳐진 형태였다.

하나로 합쳐서 꼬일데로 꼬인 코드는 프로젝트 관리를 어렵게 만들었다.

따라서, 사람들은 관리가 쉽도록 코드들을 구분짓기 시작했고, 이러한 구분을 구체화 시켜 MVC패턴, 혹은 MVT 패턴을 만들어

현재 사용중인 것이다.

 

1. MVT란?

 - 모델 : 사용자가 입력한 데이터를 DB에 저장하는 부분을 담당

 - 뷰: 모델의 데이터를 적절하게 가공하여 클라이언트에게 보내어 보여주는 역할

 - 컨트롤 , 템플릿 : 모델과 뷰를 사용자의 입력과 행동에 반응하여 업데이트 해주는 역할

 

2. 장고에서 MTV패턴은 어떻게 이용되나요?

장고 플로우

1) 웹브라우져 에서 사용자가 특정한 이벤트를 발생시키고, 요청은 장고의 서버로 진입한다. 

 2) URL Dispatcher은 발생한 이벤트의  URL을 입력받아, 해당 URL에 적합한 View로 요청을 이동시킨다.

 3) View는 요청에 따라 데이터베이스의 어느곳에 접근해야하며, 그 데이터를 어떻게 가공해야할지를 Model에 알려준다.

 4) Model은 데이터베이스에 접근하여 데이터를 가져오고 View에서 요청받은대로 가공한 데이터를 다시 View로 전달한다.

 5) View는 전달받은 데이터를 Template로 전달한다.

6) Template는 웹브라우저에 적절한 형태(리액트,뷰,html,js..)로 가공하여 웹 브라우져에 가공완료한 데이터를 전달한다.

7) 웹브라우져는 전달받은 데이터를 화면에 뿌려준다.

 

 3. init 시 생기는 파일들과 위에서 학습한 순서와 연관이 있나요?

 1) 요청은 WSGI(웹서버게이트웨이 인터페이스) 로 제일먼저 들어온다.

    웹서버와 장고를 적절하게 이어주어, 장고가 브라우져 -> 웹서버로 부터 이어받은 사용자의 요청을 원활하게 받을 수 있도록 만들어

    준다.

 2) urls.py

  url  dispatcher의 역할을 수행하는 파일이다. 요청이 어떤 것인지 판단하여, 적절한 view로 요청을 이동시킨다.

3) views.py 과 forms.py

  중간지점이기 때문에 가장 많은 코드가 작성되는 곳.

 사용자의 요청이 어떤 것인지에 따라 데이터베이스의 어느곳에 데이터를 저장할지, 아니면 어느곳에서 데이터를 가져올지를 결정

 한다. 

 또한 가져온 데이터를 가공하기도 하기 때문에 하는일이 매우많은 곳이다.

  데이터의 가공을 손쉽게 하기 위해서, 데이터들의 형식을 forms.py에 미리 만들어 놓고 요청받거나 보여줄 데이터를 미리 만들어

  놓은 형식에 넣어 templete에 전달 해줄 수도 있다.

4) models.py

 데이터베이스에 요청된 정보를 저장하거나 가져오는 역할을 하는 곳이다. 

 쿼리문을 날려 요청받은 대로 데이터를 저장하거나,  가져오는 기능을 하는데.  장고에서는 매니저라는 것이 있어서 '변수'를 지정하

 면 쿼리문을 굳이 길게 작성하지 않아도 귀찮은 작업을 다 해준다고한다.

가져온 데이터는 view로 전달해준다.

 5) template(html파일)과 forms.py

 view에서 가공한 파일들을 브라우저에게 전달해 보여줄 html형식으로 만들어 유저에게 보여준다.

 

6) settings.py

 전체 프로젝트를 관리하기 위한 환경설정을 위한 파일

  - DEBUG  :  true / false 로 켜고 끌 수있다. 

  - INSTALLED_APPS : pip로 설치한 앱또는 본인이 만든 앱을 추가. 

  - MIDDLEWARE_CLASSES : 요청과 응답사이의 보안과 관련된 기능레이어

  - TEMPLATES : 장고 template관련 설정

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

  - STATIC_URL : css,js,image와 같은 정적파일의 url

 

7) manage.py 

 프로젝트 관리 명령어 모음

  - startapp : 앱생성

 - runserver : 서버실행

 - createsuperuser : 관리자 권한을 가진 계정을 생성

 - makemigrations app : 모델의 변경사항을 확인

 - migrate : 모델의 변경사항을 db에 반영

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

  - collectstatic : static파일을 한곳에 모음.

'CodeStates > TIL' 카테고리의 다른 글

장고- 가상환경 구축?  (0) 2019.07.25
장고 - __init__  (0) 2019.07.25
파이썬 - 튜플  (0) 2019.07.20
파이썬 - 리스트  (0) 2019.07.20
파이썬 - 문자열 자료형  (0) 2019.07.20
Comments