1. 데이터베이스 설치
- 기본적으로 SQLite를 사용
- 다른 데이터베이스를 사용해보고 싶다면, 적절한 데이터베이스 바인딩을 설치하고, 데이터베이스 연결설정과 맞게끔 DATABASES’defualt’항목의 값을 다음의 키 값으로 바꿔주세요
ENGINE - 'django.db.backends.sqlite3', 'django.db.backends.postgresql'
INSTALLED_APPS = [
django.contrib.admin
django.contrib.auth
django.contrib.contenttypes
djnago.contrib.sessions
django.contrib.messages
django.contrib.staticfiles
2. 모델 만들기
- 모델: 부가적인 메타데이터를 가진 데이터베이스 구조
from django.db import models
class Question(model.Model):
question_text = models.CharField(amx_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.IntegerFiled(default = 0)
- 각 모델은 class django.db.models.Model의 하위 클래스로 표현
- CharField: 문자필드, max_length가 필수
- DatetimeField: 날짜와 시간
- default 값 설정 가능
- ForeignKey로 관계 설정
3. 모델의 활성화
- model은 데이터베이스 스키마 생성, 객체 접근하기 위한 Python 데이터베이스 접근 API를 생성
- 먼저 polls앱이 설치되었다는 것을 알려야 합니다.
INSTALLED-_APPS = [
'Polls.apps.PollsConfig',
]
- python manage.py makemigrations polls 명령어 입력
- 모델을 변경시켰음을 알림
- python manage.py migrate
- 변경사실을 저장
4. API 가지고 놀기
>>> from polls.models import Choice, Question
>>> Question.objects.all()
<QuerySet []>
>>> from django.utils import timezone
>>> q = Question(question_text="What's new?", pub_date=timezone.now())
>>> q.save()
>>> q.id
1
>>> q.question_text
"What's new?"
>>> q.pub_date
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=datetime.timezone.utc)
>>> q.question_text = "What's up?"
>>> q.save()
>>> Question.objects.all()
<QuerySet [<Question: Question object (1)>]>
Django