본문 바로가기

개발/장고

[해설과 함께 읽는 Django 문서] Models - Quick example, Using models

반응형

<!doctype html>

원문 링크

한국어로 옮기기 어색한 단어들은 영문으로 혹은 해석이 애매한 구절은 직역한 그대로 사용 하였습니다.

모델

모델은 당신의 데이터에 대해서 단 하나의 정보이다. 이것은 필수적인 필드들과 당신이 저장하는 데이터의 행동들을 포함한다. 대개 각각 모델은 1개의 데이터베이스 테이블에 매핑된다.

기본적으로

  • 각각의 모델은 파이썬 클래스 이다 - 이 클래스는 django.db.models.Model 의 서브 클래스이다.
  • 각각의 모델의 속성은 데이터베이스의 필드를 나타낸다.
  • 위의 두가지와 함께, 장고는 자동으로 생성된 데이터베이스 접근 API를 제공한다; 쿼리 만들기를 보자

내 마음대로 해설

장고로 개발 하다보면 모델은 무조건 적으로 만나게 되는 놈이다. 설명에 나온대로, 데이터베이스 테이블을 파이썬의 클래스와 매핑 시켜서 표현하고, 데이터베이스를 지지고볶고 할 수 있는 API로써, 장고 ORM을 제공한다

빠른 예제

이 예제의 모델은 Person 을 정의한다 - 이 Personfirst_namelast_name 을 가진다

 
 
 
 

first_namelast_name 은 모델의 필드들이다. 각각의 필드는 클래스 속성으로 특정되고, 각각의 속성은 데이터베이스 컬럼과 매핑된다.

위의 Person Model은 아마도 다음과 같은 데이터베이스 테이블을 생성 할 것이다.

 
 
 
 

몇가지 기술적인 메모:

  • 테이블의 이름인 myapp_person 은 모델의 메타데이터로 부터 자동적으로 만들어진다. 이 테이블 이름은 재정의할 수 있다. 자세한 내용은 테이블 이름 을 보자
  • id 필드는 자동으로 추가된다 그러나 이 동작은 재정의 할 수 있다. Automatic primary key 필드를 보자
  • 위 예제 속 CREATE TABLE SQL은 PostgreSQL 문법을 사용하여 보여진다. 그러나 꼭 PostgreSQL이 아니더라도 장고는 settings file의 database backend에서 정의된 것에 맞춰서 SQL을 사용한다

내 마음대로 해설

매우 간단한 모델을 생성하였고, 해당 클래스를 통해 데이터베이스 내 테이블을 생성할 때, 어떤 쿼리가 나가는지도 설명하였다.

참고로 내가 만드는 모델 클래스가 실제로 어떤 데이터베이스 쿼리를 발생시키는지 보고 싶을 때는 아래와 같이 해준다.

 
 
 
 
 
 
 
 

모델 사용하기

일단 당신의 모델을 정의하면 당신은 장고에게 이 모델을 사용할 것을 말해야한다 settings.pyINSTALLED_APPS 에 당신의 models.py 를 포함하는 모듈의 이름을 추가해라.

예를들면, 만약 당신의 모델이 myapp.models에 있다면, INSTALLED_APPS 읽어야 한다

 
 
 
 

새로운 앱을 INSTALLED_APPS에 추가할 때, 반드시 mange.py migrate 를 해주어라 처음으로 migration 을 만드는 것이라면 manage.py makemigrations 도 같이 해주어야 한다.

내 마음대로 해설

위 설명대로, 장고 모델을 사용하기위해선 앱등록을 해주어야 한다. 앱등록은 INSTALLED_APPS 에 추가를 하면된다.

그 이후에는 makemigrationsmigrate 를 해준다.

makemigrations 는 DB migration할 정보를 보여주는 migration 파일을 생성한다.

migrate 는 이 migration 파일을 바탕으로 실제 DB에 반영 시킨다.

반응형