[TIL] *Django - Model

김성진·2020년 9월 2일
0
post-thumbnail

Django에서 Model은 데이터 서비스를 제공하는 Layer이다. Model은 각 Django App 안에 기본적으로 생성되는 models.py 모듈 안에 정의하게 된다. 또한 models.py 모듈 안에 하나 이상의 모델 클래스를 정의할 수 있으며, 하나의 모델 클래스는 데이터베이스에서 하나의 테이블에 해당된다.

manage.py startapp feedback: feedback이라는 새 Django App을 생성하였다.

위 그림에서 Feedback이라는 클래스가 models.Model의 파생 클래스이며, 그 클래스 안에 4개의 클래스 변수 (혹은 Class Attribute)가 있음을 볼 수 있다.
모델 클래스는 필드를 정의하기 위해 인스턴스 변수가 아닌 클래스 변수를 사용한다. 그 변수가 테이블 컬럼의 내용을 갖는 것이 아니라, 테이블의 컬럼 (메타데이터?)를 정의하는 것이다.

필드를 정의하는 각각의 클래스 변수는:
ex)models.CharField(), models,IntegerField(), models.DateTimeField(), models.TextField() 등의 각 필드 타입에 맞는 Field 클래스 객체를 생성하여 할당한다.

그리고 생성자 호출시 필요한 옵션들을 지정할 수 있다. 각 Field 클래스마다 반드시 지정해 주어야 하는 옵션이 있을 수 있는데; CharField 는 필드의 최대 길이를 나타내는 max_length를 지정해주어야 한다.
ex) name = models.CharField(max_length=100) 에서 name이라는 class Attribute는 맥스길이 100을 못 넘는다.

필드타입:

필드옵션:

모델의 필드는 필드 타입에 따라 여러 옵션(혹은 Argument)를 가질 수 있다. 예를 들어, CharField는 문자열 최대 길이를 의미하는 max_length라는 옵션을 갖는다.

profile
multi-national communicator with programming (back-end)

0개의 댓글