본문 바로가기

Python

Django의 DB모델링

DB모델링

어떤 item에 속성 데이터를 사전에 정의하는 것. 데이터 자체가 아니라 포맷을 지정하는것으로, 미리 지정해둔 포맷에 맞춰 저장하고 포맷에 해당하는 형식으로 데이터를 불러온다.

예: job table

*  id
* 산업
* 연봉
* 근무지
* 생성일
* 수정일

 

django의 경우

* id는 기본값(Primary Key)으로 자동 정의.

* 외래키(Foreign Key)는 xxx_id로 자동 생성

* 다른 테이블의 id를 location으로 정의해주면 location_id 컬럼으로 생성.

* users 테이블은 자동으로 생성되어 있음.

마이그레이션 파일 생성 및 마이그레이트

* python manage.py makemigrations 모델에 해당하는 마이그레이션 생성.

* python manage.py migrate 생성한 마이그레이션으로 db에 테이블 생성.

유저 테이블에 수퍼유저 생성

* python manage.py createsuperuser 수퍼유저 생성.

* 생성한 수퍼유저로 장고 admin 페이지 접근 가능.

 

CharField
* 문자열을 저장할 때 사용한다.
* 길이 제한 문자열을 삽입 한다.(max_length=100)

 

EmailField
* 이메일 주소 형태를 저장할 때 사용한다.
* 길이 제한 문자열을 삽입 한다.(max_length=100)

 

URLField
* URL 주소 형태를 저장할 때 사용한다.

 

TextField
* CharField와 유사하지만, 더욱 대용량의 문자열을 처리 한다.
* DB용량을 더 소모하지만 굳이 크기 제한을 하지 않는다.

 

IntegerField
* 32비트 정수형 필드 이며 정수 사이즈에 따라 다른 필드를 사용할 수 있다.
* BigIntegerField
* SmallIntegerField
* default를 통해 수정이 없을 경우 지정된 값을 자동으로 저장한다.

 

BooleanField
* True 또는 False를 저장하고, DB상에서는 0, 1로 저장되는 SmallIntegerField형식이다.
* Null을 허용하려면 NullBooleanField를 사용한다.
* initial을 통해 수정이 없을 경우 지정된 값을 자동으로 저장한다.

 

DatetimeField
* 시간과 관련된 값을 저장한다.
* DateField: 날짜만 저장하고 싶을 때 사용
* TimeField: 시간만 저장하고 싶을 때 사용

 

DecimalField
* 소수점 관련 필드를 말한다.
* max_digits와 decimal_place를 지정해야 하고, 지정한 값으로 저장하려는 숫자가 지정한 포맷에 맞는지 확인 가능하다.

 

FileField
* 파일을 업로드 한다.
* upload_to 옵션에 해당 경로를 지정해야 한다.
* 폴더 탐색은 settings.py에서 설정한 MEDIA_ROOT부터 시작한다.

 

ImageField
* FileField의 파생이다.
* 해당 파일이 이미지인지 확인 가능하다.

'Python' 카테고리의 다른 글

[FastAPI] PUT과 PATCH 처리  (0) 2024.08.01
FastAPI에서 MongoDB 연결하기  (0) 2024.05.05