models.py 해석하기

hyuckhoon.ko·2020년 6월 11일
0

What I learned in wecode

목록 보기
49/109

1. 모델링



아래는 모델링 관련한 장고 튜토리얼의 models.py 모듈의 코드를 발췌했다.

해석하기에 앞서,
aquerytool을 활용하여 데이터베이스의 데이터 연결 관계를 설계하자.

from django.db import models

# Create your models here.

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    
class Choice(models.Model):
     question = models.ForeignKey(Question, on_delete=models.CASCADE)
     choice_text = models.CharField(max_length=200)
      votes = models.IntegerField(default=0)


장고(django) 공식 튜토리얼을 보면 간단한 투표앱(polls)을 만들고 있다.
각 질문에 대한 답변을 선택하고 총 집계를 확인할 수 있는 투표앱이다.

(나중에 튜토리얼을 다 완수하면 알 수 있겠지만
/admin/ 경로를 통해 관리자로서, 질문을 삭제하거나 새로운 질문을 추가할 수도 있다.
물론 그에 따른 부가적인 코드 수정이 필요하다.)


위 그림과 같이 one to many 데이터 연결 형태다.
지난 시간에 우리는 관계형 데이터베이스의 경우,
(중복이 없는 독립적인) 2차원 테이블들끼리 연결(관계)을 맺는 방식을 택하며
그것을 가능케 하는 것이 Foreign Key임을 배웠다.





2. 코드보기

1) from 및 import

from django.db import models

깃허브의 django 패키지 디렉토리 구조를 살펴보자.

django.db 패키지 내부에 models 패키지를 import 했다.


models 디렉토리 내부를 다시 한 번 들어가보자.

또 다시 디렉토리들이 보리고, 파이썬 모듈들도 보인다.



이 중 base.py모듈에
앞으로 우리가 자주 보게 될 Model 클래스의 정의가 있다.





추가로,
Charfield, IntegerField와 같은 클래스는
base.py에 없다.
해당 클래스 정의는 아래의 경로에서 찾을 수 있다.

0개의 댓글