Models - Quick example
Django 공식문서에 나와있는, models 에 대한 부분을 둘러봅니다.
공식 문서에는 완벽한 번역본이 존재하지 않고, 설명이 너무 불충분해서, 초반에 공부할때에 많은 어려움이 있었습니다.
물론,, 지금도 쉽지는 않지만.. 어쨋든, Django models 에 대한 포스팅을 시작합니다.
Models (모델)
모델은 당신의 데이터에 대한 정보를 가지고 있고, 당신의 데이터에 대한 정의를 내리는 하나의 소스 입니다.
모델은 당신에게 필요하고 저장하고자 하는 필드들과 동작들에 대한 정보를 포함하고 있습니다
각 모델들은, 보통 하나의 데이터 베이스 테이블로 매핑 됩니다.
기본 사항들
- 각 모델은 Python 클래스 이고,
django.db.models.Model
의 서브 클래스 이다 - 각 모델의 속성들은 데이터베이스 필드를 표현 합니다
- 이 모든 정보들을 가지고, Django 는 자동으로 생성된 database-access API 를 제공합니다.
빠른 예제
아래 예제는, first_name, last_name 정보를 가지는 Person 모델을 정의 합니다.
1 | from django.db import models |
first_name 과 last_name 은 모델의 필드들입니다. 각 필드들은, 클래스의 속성들로 표현되어 있습니다.
그리고, 각 속성들은 database 컬럼들과 메칭 됩니다.
처음에 공부할때, 데이터베이스의 Column 그리고 Field 에 대해서 잘 몰라서
이해가 안갔었는데, 아래 그림을 가져와서 참고 합니다.
- 위의 모델에서 class Person 이라는 클래스는 데이터베이스 테이블명이 됩니다
- first_name 은 해당 테이블의 필드명이 되고, 최대 길이는 30자 입니다
- last_name 은 해당 테이블의 필드명이 되고, 최대 길이는 30자 입니다
위의 Person 모델은 아래와 같은 데이터베이스 테이블을 생성합니다.
1 | CREATE TABLE myapp_person ( |
기술적인 노트
- 테이블의 이름은, myapp_person 으로 지정되어 있는데, 이것은 자동적으로 메타데이터에서 따옵니다. 하지만, 이 이름은 오버라이드 될수 있습니다
- id 필드는 자동으로 추가됩니다. 이 동작 방식도 수정될수는 있습니다
- 이번 예제에서 사용된 CREATE TABLE SQL 구문은, PostgreSQL 구문을 사용한 형식입니다. 하지만, django 는 데이터베이스 백앤드를 당신의 settings.py 파일에 명시되어 있는 데이터베이스에 맞추어 사용합니다.