YUYANE

Django / models.py 본문

Framework/DJANGO

Django / models.py

YUYA 2021. 2. 19. 13:39

학습강의

nomadcoders.co/airbnb-clone/lectures/858

 

 

Django-admin을 통해 앱을 생성하면 아래와 같은 폴더가 자동으로 생성된다. 오늘은 models 파일에 대해 알아보자!

 

 

 

models.py ?

 

데이터를 정의하고, 데이터 구조가 어떻게 생겼는 지를 코드로 작성하여 저장하는 곳

우리가 저장할 데이터 구조를 models.py에 작성하면, 장고가 그 코드를 읽어 구조에 맞게 데이터를 생성한다.

 

 

* 주의 : 우리는 장고라는 프레임워크를 사용하고 있는 것이므로 함부로 파일명을 바꾸면 안된다! 

 

 

파일 구조는 아래와 같이 생겼다.

 

from django.db import models

class HouseRule(AbstractItem):

    """ HouseRule Model Definition """

    class Meta:
        verbose_name_plural = "House Rules"


class Photo(models.Model):

    """ Photo Model Definition """

    caption = models.CharField(max_length=80)
    file = models.ImageField()
    room = models.ForeignKey(
        "Room", related_name="photos",  on_delete=models.CASCADE)

    def __str__(self):
        return self.caption

 

 

* 모델의 각 속성은 데이터베이스의 필드(caption, file, room)를 나타내며, 각각 데이터베이스 열(column)에 매핑된다.

* 모델 클래스를 작성하면 장고는 사용자에게 자동으로 생성되는 데이터베이스 접근 API를 제공한다.

 

 

models.py 사용하기

 

해당 파일에 데이터 및 데이터 구조를 정의했다면 장고에게 정의했다고 알려야 한다.

models.py를 가지고 있는 앱을 프로젝트를 시작하면 자동으로 생성 되는 config 폴더 - settings.file에 추가해야 한다.

 

 

 

 

예를 들어, 위의 models.py는 rooms 이라는 앱에 속하는 파일이다. 해당 rooms 앱/폴더의 apps.py을 열어 클래스 명을 확인하자. 

 

 

 

 

클래스 명(RoomsConfig)을 확인했다면, 이것을 config 폴더의 settings.file 에 추가하자. 

 

 

 

 

 

settings.file을 열어 커서를 내리다보면 INSTALLED_APPS 이 있을 것이다. 여기에 클래스명을 위와 같이 추가하면 된다. 마지막으로 migration 작업 까지 하면 완료! 

 

* 참고로 models.py에서 새롭게 생성, 수정, 삭제 된 데이터가 있어도 migration이 필요하다. 

 

 

 

 

참고

docs.djangoproject.com/en/3.1/topics/db/models/

 

 

 

Comments