ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • INTRODUCTION TO DJANGO
    django 2021. 2. 20. 17:30

    INTRODUCTION TO DJANGO

     

     

     

    MTV

     

    MVC, MTV

     

    MVC란 Model View Controller의 약자로 애플리케이션을 세가지의 역할로 구분한 개발 방법론이다. 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 정보를 바탕으로 View를 제어해서 사용자에게 전달한다.

     

    웹에 적용해보면,

    사용자가 웹사이트에 접속하면 Controller는 사용자가 요청한 웹페이지를 서비스 하기 위해 모델을 호출한다. 모델은 데이터베이스를 제어한 후에 그 결과를 리턴한다. Controller는 Model이 리턴한 결과를 View에 반영하고 데이터가 반영된 View가 사용자에게 보여진다.

     

    MTV는 Model Template View의 약자로 MVC와 유사한 개념을 가진다. 장고는 MTV 패턴을 따른다.

    장고에서는 사용자에게 보여주는 화면을 Template이 담당하고, 애플리케이션의 제어 흐름과 로직을 처리하는 것은 View가 담당한다는 점이 조금 다르다.

     

     

    Flow

     

     

    웹브라우저에서 어떤 이벤트가 발생하면 장고 서버로 request가 들어온다. 장고 서버로 들어온 이벤트에 대해 URL Dispatcher가 URL을 분석하여 적합한 View로 해당 request를 보낸다. View는 데이터베이스 어디에 접근하여 어떤 데이터를 가공할 것인지를 Model에게 알려주고, Model은 데이터베이스와 연결하여 필요한 연산을 처리한다. 데이터베이스가 다시 Model로 결과값을 리턴하면 Model이 View로 전달하고, View는 사용자에게 보낼 데이터를 다시 Template에 전달해준다.

     

    실제로 장고를 통해 앱을 생성하면 위의 오른쪽 그림 아래에 적힌 파일들을 만나볼 수 있다.

    WSFI는 서버와 장고를 적절히 결합하는 게이트웨이이다.

    SETTING은 전체 프로젝트를 관리하는 설정들이다.

    프로젝트 환경설정파일인 setting.py 안에는 pip으로 설치한 앱이나 본인이 만든 앱을 추가하는 INSTALLED_APPS, 장고 템플릿 관련 설정과 실제 뷰를 관리하는 TEMPLATES 등이 있다.

    Middelware는 장고 뒤에서 우리가 볼 수 없는 다양한 작업을 처리해준다.

    MODEL은 데이터베이스에서 데이터를 가져와서 변수를 지정하면 알아서 연결해준다. 따로 SQL문을 작성할 필요없이 MANAGERS이 다 처리해준다.

    앱을 생성하면 해당 폴더 안에 models.py파일이 생성되는데, 이 파일 안의 코드를 통해 모델의 구조를 결정하고 관리할 수 있다.

    View도 앱을 생성하면 해당 폴더 안에 views.py 파일이 생성되는데, 데이터를 어떻게 보여주고 처리할 것인지에 대한 로직을 짤 수 있다.

     

    project, app

    앱은 의미 있는 하나의 기능을 말한다. 프로젝트는 이 앱들의 집합이라고 생각하면 된다.

     

    실행파일인 manage.py 관련 주요 명령어들은 아래와 같다.

    startapp: 앱 생성

    runserver: 서버 실행

    createsuperuser: 관리자 계정 생성

    makemigrations: 모델 변경사항 체크

    migrate: 변경사항을 DB에 반영

    shell: 데이터 확인

     

    음 그러니까 데이터 유형이 변경될 때 migrations를 해줘야 한다.

    데이터 유형이 변경되면 migration을 생성하고 해당 migration을 적용한다.

    장고로 데이터베이스를 업데이트해주는 역할이라고 생각하면 편할 것 같다.

     

    그리고 당연히 runserver는 장고에서 제공하는 테스트용 웹서버이다.

     

     

     

     

    https://docs.djangoproject.com/en/3.1/

     

    Django documentation | Django documentation | Django

    Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

    docs.djangoproject.com

    https://www.youtube.com/watch?v=LYmZB5IIwAI

    'django' 카테고리의 다른 글

    django setup  (0) 2021.03.03
dotori..