해석하기에 앞서,
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
임을 배웠다.
1) from 및 import
from django.db import models
django.db 패키지 내부에 models 패키지를 import 했다.
또 다시 디렉토리들이 보리고, 파이썬 모듈들도 보인다.
이 중 base.py
모듈에
앞으로 우리가 자주 보게 될 Model 클래스
의 정의가 있다.
추가로,
Charfield, IntegerField
와 같은 클래스는
base.py에 없다.
해당 클래스 정의는 아래의 경로에서 찾을 수 있다.