본문 바로가기
Python/Django Ⅱ

M : Model(모델)

by Mr.DonyStark 2024. 5. 2.

1. 모델은 프로젝트를 위한 앱의 데이터와 관련된 부분이며, 이를 다루는 영역

2. 데이터베이스에 저장될 데이터의 모양을 정의하고 관련된 일부 기능을 설정해주는 영역임

3. 즉, 모델을 데이터 베이스에 적용시키면 그것은 테이블이 되는 것임

4. 모델을 데이터베이스에 적용시키는 과정을 마이크레이션(Migration)이라고 함

5. 모델은 생성된 앱 디렉토리에 있는 models.py에서 작성가능하며, 하나의 클래스로 생성할 수 있음

  (1) Photo 라는 클래스 정의(이는 테이블 명으로 적용)

  (2) models.Model을 상속받아 각 속성들을 models를 사용해 정의

  (3) models는 Django의 데이터베이스와관련된 내용을 미리 작성해 놓은 도구임

 

6. 주사용 필드타입

CharField 문자열 : 길이제한 필요
InterField 정수
TextField 문자열 : 길이제한 없음
DateField 날짜
DateTimeField 날짜 + 시간
FileField 파일
ImageField 이미지 파일
ForeignKey 외래키(관계)
OneToOneField 1대1 관계
ManyToManyField 다대다 관계

 

7. 모델 적용

  (1) makemigrations : 모델을 변경한 내용을 기록하여 파일로 만들어줌

py manage.py makemigrations

  (2) migrate : makemigrations에서 생성된 파일을 실제로 실행시켜 실제 데이터베이스에서 변경사항을 적용시킴

python manage.py migrate

 

8. 생성된 모델을 어드민 페이지에서 조회 및 작성가능하도록 app > admin.py 에서 작업진행

from django.contrib import admin
from .models import Photo #Photo app의 models.py에서 생성한 Photo 객체 임포트

#모델 등록
admin.site.register(Photo)

모델에서 생성한 Photo 클래스를 admin.site.register(클래스명) 활용하여 코딩

'Python > Django Ⅱ' 카테고리의 다른 글

V : View(뷰)  (0) 2024.05.03
T : Template(템플릿)  (0) 2024.05.03
슈퍼유저(SuperUser) 생성 및 어드민 페이지  (0) 2024.05.02
프로젝트와 앱  (1) 2024.05.02
환경세팅 및 프로젝트 시작  (0) 2024.05.02