[Django 시작하기] Part2. 모델 생성하기
model 생성하기
- polls/models.py 경로에서 지정
model: 데이터베이스의 구조라고 생각하면 됨. (쉽게 말해서는 하나의 model이 데이터베이스의 하나의 테이블이고, 그 안에서 데이터형이나 다은 부가적인 것들을 지정) 이러한 하나의 테이블은 파이썬의 class로 표현이 됨.
import datetime
from django.db import models
from django.utils import timezone
# model: 데이터베이스의 구조라고 생각하면 됨
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
- mysql 데이터베이스에서는 polls_question, polls_choice로 생성이 됨.
생성한 모델을 프로젝트에 포함시키기
모델을 만들었으면, 이 모델(크게 본다면 polls 앱)을 현재 프로젝트에 포함시켜야 한다. (장고의 앱은 꼇다뺏다가 가능하다.) 현재 프로젝트에 포함시키기 위해서는 앱의 구성 클래스에 대한 참조를 mysite/settings.py 내의 INSTALLED_APPS에 추가해야 한다. PollsConfig 클래스는 polls/apps.py파일에 존재하고, 이는 경로가 polls.apps.PollsConfig 로 표현된다. 이를 INSTALLED_APPS에 추가한다.
# polls/apps.py
from django.apps import AppConfig
class PollsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'polls'
- 위의 PollsConfig를 아래의 settings.py에 추가한다.
# settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig', # 추가 완료
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
뷰에서 탬플릿으로 연결