[Django] Model & Migrations

완수·2021년 10월 20일
0

[Django]

목록 보기
4/8
post-thumbnail

Model

웹 애플리케이션의 데이터를 구조화 하고 조작 하기 위한 도구

  • 보통 데이터베이스에 데이터를 저장하고 조회하기 위해서 SQL 쿼리문을 이용해야 하지만 장고의 모델(Model)을 사용하면 이런 SQL 쿼리문의 도움없이 데이터 처리가 가능하다.
  • 저장된 데이터베이스의 구조를 나타내며 단일 데이터에 대한 정보를 가진다
  • 사용자가 저장하는 데이터들의 필수적인 필드들과 동작을 포함
  • 일반적으로 각 model은 하나의 데이터베이스 테이블에 mapping 된다

models.py 작성

DB column(ex. title, content)과 어떠한 타입으로 정의할 것인지에 대해 django.db 모듈의 models 상속

  • 각 모델은 django.db.models.Model 클래스의 서브 클래스로 표현
  • 각 필드는 클래스 속성으로 지정되며, 각 속성은 데이터베이스의 column에 mapping

model 사용하기

  • 데이터 조회
    - Article.objects.all()
    : QuerySet 객체가 리턴
    - Article.obejcts.get(id=1)
    : QuertSet이 아닌 Article 모델 객체가 리턴

Migrations

django가 model에 생긴 변화를 반영하는 방법

  • 데이터베이스가 필요한 앱만 migration이 필요하다.
  1. makemigrations: DB에 변경이 필요한 사항을 추출

    • model 변경 후 새로운 마이그레이션을 만들 때 사용
    • model 변경 후 반드시 해 주어야 한다
  2. migrate

    • 만들어진 마이그레이션을 DB에 반영하기 위해 사용
    • model에서 변경 사항과 DB의 스키마가 동기화를 이룸
# 1. model 변경
models.py

# 2. migratios 파일 생성
$ python manage.py makemigrations

# 3. DB 반영(model과 DB 동기화)
$ python manage.py migrate

ORM

DB 를 객체(object)로 조작하기 위해 ORM을 사용

  • Object-Relational-Mapping
  • 객체 지향 프로그래밍 언어를 사용, 호환되지 않는 유형의 시스템 간에(Django ~ SQL) 데이터를 변환하는 프로그래밍 기술
  • Django는 내장 Django ORM을 사용
profile
병아리 개발자의 공부 노트 🐣

0개의 댓글