Database와 연동해주기 위해서 mirgrate 하기 전에,
항목별 이름 및 데이터 타입을 지정해준다.
- 최대 255자까지 가능하다. max_length를 지정해주어야 함.
- 기본적으로 blank = False로 되어 있어서 반드시 적어주어야 하지만,
blank = True로 둘 경우, pass가 가능하다.
- 참조할 class를 적어준다.
- on_delete=models.CASCADE 옵션은 Primary Key가 삭제될 경우, 계단식으로 따라서 삭제된다. 외에도 default, null 등으로 변경하는 옵션이 있다.
- db_column은 mysql에서 table명을 지정해준다. 지정하지 않을 경우, app이름_class이름으로 저장된다.
- max_digits은 최대 자릿수
- decimal_places는 소수 자릿수
- auto_now_add=True 는 create될 때 데이터 값 저장
- auto_now=True는 create + update될 때 데이터 값 저장
mysql 에서 해당 DB에 접속했을 때의 모습이다.
각 table의 정보가 잘 되어있는지
DESC products;
로 확인해볼 수 있다.
id 값은 자동으로 생성되며, 추가될 때마다 1씩 증가하는 primary key이다.
터미널에 class명.objects.method명(~~)을 입력한다.
그 전에 아래와 같이 class를 import 해주어야 한다.
method마다 queryset을 반환하거나 그렇지 않은 케이스로 나눠진다.
잘 구분해서 사용해야 함.
대표적으로 ForeignKey를 Create할 때, filter를 사용하면 에러가 뜬다.
그래서 아래와 같이 get을 이용해야한다.
이 외에도 많은 API가 있으니, 참고해볼 것.
참고 : https://docs.djangoproject.com/en/3.1/ref/models/querysets/