본문 바로가기

Tech/[Backend] Django

Django 공식 문서로 Django 입문하기 (1) - Django 개념 이해

Django의 큰 구조 이해하기

(https://www.linkedin.com/pulse/understanding-mvt-architecture-django-aritra-pain-fpmnc/)

 

핵심 요약 정리

  • Django의 핵심은 모델(Model), 뷰(View), 템플릿(Template) 세 가지 구성 요소라는 것.
  • MVT(Model-View-Template) 패턴
  • 모델(Model): 데이터베이스 구조와 데이터를 정의하며, 데이터의 생성, 조회, 수정, 삭제 등 데이터와 관련된 모든 작업을 담당합니다. 실제로는 Python 클래스로 작성되며, Django의 ORM(Object-Relational Mapping)을 통해 데이터베이스와 연동됩니다.
  • 뷰(View): 사용자 요청을 받아서 필요한 로직을 처리하고, 모델에서 데이터를 가져오거나 저장한 뒤, 그 결과를 템플릿에 전달하는 역할을 합니다. Django의 뷰는 MVC 패턴에서의 컨트롤러 역할과 유사합니다.
  • 템플릿(Template): 뷰로부터 전달받은 데이터를 사용자에게 보여주는 화면(UI)을 담당합니다. HTML 파일에 Django 템플릿 언어를 사용하여 동적으로 데이터를 표시합니다.

 

Django 훑어보기

(https://docs.djangoproject.com/ko/5.2/intro/overview/)

모델

  • 일반적으로 각 모델은 하나의 데이터베이스 테이블과 매핑
  • 데이터의 필수적인 필드와 동작을 포함
  • 각각의 모델은 Python의 Class로, django.db.models.Model 에 속하게 됨

모델 설계

  • OPM(Object Relational Mapper) 자동 설치
  • Data-Model 형태 사용

설치

  • Django CLI 유틸리티 생성 필수
  • makemigrations : 생성 가능한 모델을 찾아 테이블이 존재하지 않을 경우 마이그레이션 생성
  • migrate : 생성된 마이그레이션을 실제로 데이터베이스에 테이블 생성

관리자 페이지 제공

  • 모델이 정의된 후에는 관리자 페이지(인터페이스)가 자동으로 생성됨
  • 해당 관리자 페이지에서 인증된 사용자가 객체를 추가, 변경, 삭제할 수 있음
  • 핵심 : 빠르게 관리자 페이지를 만들어 비즈니스 운영자가 데이터 입력을 시작할 수 있게 만듬

URL 설계

  • URLconf 파이썬 모듈을 활용해 라우팅 수행
  • 경로를 순서대로 실행하고, 요청된 URL과 일치할 때까지 내부적으로 콜백을 통해 접근
  • 예를 들어, 사용자가 URL “/articles/2005/05/39323/”로 요청을 보내면, Django는 다음처럼 함수를 호출함. → news.views.article_detail(request, year=2005, month=5, pk=39323).

뷰 작성하기

  • 하나의 뷰는 HttpResponse 객체, Exception 객체(HTTP 404) 둘 중 하나를 반환해야 하는 책임이 있음.
  • 뷰는 파라미터들에 따라 데이터를 가져오며 템플릿을 로드하고 템플릿을 가져온 데이터로 렌더링함.

템플릿 작성하기

  • 일반 HTML과 다르게 특수한 템플릿 코드들이 작성되어 있어 랜더링 시 값을 동적으로 부여함.
  • Custom Template Filter, Custom Template Tag 등을 작성해 Python 코드를 실행 시킬 수 있음.
  • Template 간 상속을 통해 하나의 base 템플릿을 두고 코드 재사용이 가능함.