기본적으로 SQLite을 사용하도록 구성됨
기본적인 Django와 함께 딸려오는 어플리케이션들
django.contrib.admin -- 관리용 사이트. 곧 사용하게 될 겁니다.
django.contrib.auth -- 인증 시스템.
django.contrib.contenttypes -- 컨텐츠 타입을 위한 프레임워크.
django.contrib.sessions -- 세션 프레임워크.
django.contrib.messages -- 메세징 프레임워크.
django.contrib.staticfiles -- 정적 파일을 관리하는 프레임워크.
모델이란 부가적인 메타데이터를 가진 데이터베이스의 구조(layout)
polls/models.py
from django.db import models
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)
데이터베이스의 각 필드는 Field클래스의 인스턴스로서 표현
CharField는 문자필드를 표현하고 DateTimeField는 날짜와 시간필드를 표현
각각의 Field 인스턴스의 이름(question_text, pub_date)은 기계가 읽기 좋은 형식의 데이터베이스 필드 이름입니다.
Field클래스의 생성자에 선택적인 첫번째 위치 인수를 전달하여 사람이 읽기 좋은 이름을 지정 가능
Field 클래스들은 필수 인수들을 가질 수 있다. Ex) CharField의 경우 max_length을 입력해 주어야 한다.
Field 는 다양한 인수들을 가질 수 있다.
ForeighKey => 관계설정에 쓰임
Django는 위의 정보를 가지고 다음과 같은 작업을 수행함
이 앱을 위한 데이터베이스 스키마 생성 (CREATE TABLE문)
Question과 Choice 객체에 접근하기 위한 python 데이터베이스 접근 API를 생성
앱을 현재의 프로젝트에 포함시키기 위해서는 앱의 구성 클래스에 대한 참조를 INSTALL_APPS 설정에 추가해야한다.
PollsConfig 클래스는 polls/appp.py 파일 내에 존재 따라서 점으로 구분된 경로는 'polls.apps.PollsConfig' 가 된다 이점으로 구분된 경로를 mysite/settings.py 파일을 편집하여 INSTALL_APPS 설정에 추가 하면 된다.
makemigrations을 실행 시킴
user가 모델을 변경시킨 사실과 이 변경사항을 migration으로 저장시키고 싶다는 것을 Django에게 알림
migrate = user을 위해 migration들을 실행 시켜주고, 장동으로 데이터베이스 스키마를 관리해주는