본문 바로가기
알아두면쓸데있는신기한잡학사전/고군분투흔적들

[Project] 장고의 구조와 MVT 패턴

by 대범하게 2022. 8. 29.
반응형

장고란?

Django 파이썬 Web Framework 중 가장 사랑받는 Full-Stack Framework로 인스타그램, NASA, 우리가 사용할 댓글 관리 서비스인 Disqus 등에서 사용하고 있다.

Full-Stack-Framework는 웹 서비스 개발에 필요한 모든 요소들이 한 곳에 모여있는 종합선물세트이다.

 

장고의 구조와 MTV 패턴

아래 그림은 간단히 만들어 볼 Django 폴더의 구성트리이다.

수정하는 순서는 url.py > views.py > index.html 순이다.

가장 위에 있는 구조라고 보면 된다 !

    • main이라는 앱을 만들 것
      • Settings에서 설치되어 있는 앱 목록에 main 추가
        • main 추가 작업을 하지 않으면 앱이 구동하지 않는다.
        • 여러 개의 앱을 만들 경우 모두 Settings에 등록한다.
      • url.py에서 사용자가 어떤 url을 사용하여 들어오느냐에 따라 어떤 화면을 보여줄지 결정
        • path('', index)
          • 사용자가 뒤에 무언가 붙지 않고 있는 그대로의 url을 입력하고 들어왔을 경우 main/views.py 파일 안에 index라는 함수를 연결시켜 주겠다는 뜻이다.
          • index함수는 index.html과 연결시켜줄 것이다.
      • mysite > main > view.py에서 사용자가 index.html을 볼 수 있게끔 연결
        • def index(request): return render(request, 'main/index.html')
      • mysite > main > templates > main > index.html 을 만들어서 Templat을 연결

 

MTV

Django는 MVC 모델을 MTV라고 부른다.

용어가 바뀌었을 뿐이지 기본적인 개념은 같다. 

Java-Spring
Model - DB 설계 모델
View - 사용자에게 보여지는 화면
Control - 전체 컨트롤
Python - Django
Model - DB 설계 모델
Template - 사용자에게 보여지는 화면
View - 전체 컨트롤

이해가 잘 되지 않았던 구조였는데 mysite > main 에서 models.py, views.py, template가 MTV 역할을 한다고 생각하면 된다.

(빨간색으로 표시된 부분은 설계에 따라 작동하지 않을 수도 있다.)

 

Model - DB와 연결된 Python Class

Template - 사용자에게 response될 Client View

View - Django에서 처리한 데이터를 Template에게 전달

 

DB

각 문자는 다음과 같이 표준 SQL 문으로 대응 가능하다.

CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다.

반응형