DB 테이블을 정의하고 데이터를 조작할 수 있는 기능들을 제공한다
먼저 app 폴더를 만든다 ( 이름 : articles )
app 폴더 내에 models.py 폴더에 작성한다
# models.py
class Article(models.Model):
title = models.CharField(max_length=10)
content = models.TextField()
id | title | content |
---|---|---|
.. | .. | .. |
.. | .. | .. |
id 필드는 자동으로 생성된다
Article은 원하는대로 지으면 된다
(models.Model)은 Model 이라는 부모 클래스를 상속 받아 작성하는것 이다
title, content는 클래스 변수명이다. 테이블 각 필드 이름이다.
CharField, TextField 의 경우는 데이터 타입이다
( ) 안에는 필드옵션을 넣는다 , 제약조건 설정이다.
model 클래스의 변경사항(필드생성, 추가 수정 등)을 DB에 최종 반영하는 방법
python manage.py makemigrations
python manage.py migrate
models.py에 추가로 작성해준다.
python manage.py makemigrations 를 작성한다.
ex
# models.py
category = models.CharField(max_length=20, default="")
CharField() : 길이의 제한이 있는 문자열을 넣을때 사용한다 .
max_length 는 필수 인자이다.
TextField() : 글자의 수가 많을때 사용한다.
DateTimeField() : 날짜와 시간을 넣을때 사용
- datetime 제약조건
- auto_now : 데이터가 저장될 때마다 자동으로 현재 날짜 시간 저장
- auto_now_add : 데이터가 처음 생성될 때만 자동으로 현재 날짜 시간을 저장
djnango 추가 설치 및 설정 없이 자동으로 관리자 인터페이스 제공
python manage.py createsuperuser
DB에 생성된 admin 계정을 확인한다.
admin.py에 모델 클래스를 등록해 준다.
from .models imoort Article
admin.site.register(Aricle)
python manage.py showmigrations
python manage.py sqlmigrate articles 0001