🤷 기간 : 2021.04.27 ~ 2021.04.27
🤷 자료 : http://pythonstudy.xyz/python/article/308-Django-%EB%AA%A8%EB%8D%B8-Model
🤷 내용: Django model
Django model
은 django.db.models.Model
의 파생 클래스이며, model
의 field
는 class
의 attribute
로 표현model
에서는 각 Django의 App안에 기본적으로 생성되는 models.py
모듈 안에 Class
를 정의한다.models.py
안에는 하나 이상의 class
를 정의 할 수 있다.class
는 하나의 table
이다.models.py
모듈에서는 여러가지 table
을 가질 수 있다.app
의 models.py
안에는 하나 이상의 class
를 정의 할 수 있다.class
는 하나의 table
이다.models.py
모듈에서는 여러가지 table
을 가질 수 있다.Feedback
이라는 class
는 modesl.Model
에서 파생Class
는 talbe
이며 / Class Attribute
는 table
의 column
왼다.Class
안 4개의 변수는 (혹은 Class Attribute
)/ 4개의 column
이다.model class
는 class
변수를 사용한다table
의 column meta data
를 정의하기 때문에.class
변수는 각각의 field
타입에 맞는 field class 객체
를 할당한다.field 타입 class
들은 추상클래스인 "Field" class
에서 파생된 class
들이다.examples
CharField
: 제한된 문자열 필드 타입TextField
: 대용량 문자열을 갖는 필드IntegerField
: 32 비트 정수형 필드.
- 정수 사이즈에 따라 BigIntegerField, - SmallIntegerField 을 사용할 수도 있다.
BooleanField
: true/false 필드.
- Null 을 허용하기 위해서는 - NullBooleanField를 사용한다.
DateTimeField
: 날짜와 시간을 갖는 필드.
- 날짜만 가질 경우는 DateField, 시간만 가질 경우는 TimeField를 사용한다.
DecimalField
: 소숫점을 갖는 decimal 필드BinaryField
: 바이너리 데이타를 저장하는 필드FileField
: 파일 업로드 필드ImageField
: FileField의 파생클래스로서 이미지 파일인지 체크한다.UUIDField
: GUID (UUID)를 저장하는 필드참고 사이트 : https://docs.djangoproject.com/en/1.11/ref/models/fields/#field-types
또한, 테이블 간 혹은 필드 간 관계(Relationship)을 표현하기 위해 ForeignKey, ManyToManyField, OneToOneField 클래스를 또한 제공한다 !
참고 사이트:https://docs.djangoproject.com/es/1.11/ref/models/fields/#module-django.db.models.fields.related
example
null (Field.null)
: null=True 이면, Empty 값을 DB에 NULL로 저장한다. DB에서 Null이 허용된다.
- 예: models.IntegerField(null=True)
blank (Field.blank)
: blank=False 이면, 필드가 Required 필드 / blank=True 이면, Optional 필드이다.
- 예: models.DateTimeField(blank=True)
primary_key (Field.primary_key)
: 해당 필드가 Primary Key임을 표시
- 예: models.CharField(max_length=10, primary_key=True)
unique (Field.unique)
: 해당 필드가 테이블에서 Unique함을 표시, 해당 컬럼에 대해 Unique Index를 생성
- 예: models.IntegerField(unique=True)
default (Field.default)
: 필드의 디폴트값을 지정한다.
- 예: - models.CharField(max_length=2, default="WA")
db_column (Field.db_column)
: 컬럼명은 디폴트로 필드명을 사용하는데, 만약 다르게 쓸 경우 지정한다.