웹 서비스를 제공할 때 있어서 제공할 데이터, 회원정보와 같은 데이터들은 어디에 둬야할까?
이를 모아둔 공간을 DB(database)라고 하는데, 이는 Django가 자동으로 만들어준다. 프로젝트 생성을 하면 manage.py와 함께 db.sqlite3 라는 파일이 자동으로 생성되는데 이 것이 바로 DB이다. 그럼 이러한 DB를 관리하려면 어떻게 해야할까? -> models.py를 사용한다. 아래 그림으로 구조를 확인해보자.

여기서 Django Model은 DB의 테이블을 정의하고 데이터를 조작할 수 있는 기능들을 제공하는데,
테이블 구조를 설계하는 설계도를 그리는 것과 같다.(blueprint)

models.py 에 다음과 같은 코드를 작성했을 때, 그 의미를 분석해보자.
Article이라는 테이블(표)를 만들 것인데, 각 열의 요소는 title, content로 구성되어 있다.
이 때, id 필드는 자동으로 생성되는 것을 확인할 수 있다.
models.CharField(max_length=10)
models.TextField()는 테이블 필드의 데이터 타입을 설정하는 것으로 공식문서를 참고해보길 바란다.
현재 우리는 model class를 파이썬 파일에 생성했으므로 설계도의 초안이 작성되었다고 생각하면 된다. 이를 DB에 전달하기 위해서는 두 가지 과정이 필요하다.
$ python manage.py makemigrations
# model class 기반으로 최종 설계도(migration) 작성
$ python manage.py migrate
# 최종 설계도를 DB에 전달하여 반영
Django는 추가 설치 및 설정 없이 자동으로 관리자 인터페이스를 제공
$ python manage.py createsuperuser
admin.py에 작성한 모델 클래스를 등록해야만 admin site에서 확인 가능