Django Model
- 데이터베이스의 테이블을 의미
- ORM을 통해 테이블을 클래스로 정의(Table column - class Variable)
- 여러 DB와의 호환가능
(postgresql과 django 연동하기)
- 기본적으로 SQLite를 지원
💡 ORM(Odject Relational Mapping)
- 객체- 관계형 데이터베이스(RDMS)를 연결해주는 것
- 모델 클래스와 DB에 생성된 테이블을 자동으로 연관지어 주는 기술
- DB를 직접 조작할 필요 없이 모델 클래스의 python 문법을 통해서 DB를 조작할 수 있는 기술
- 객체 지향 프로그래밍이 사용하는 클래스, 관계형 데이터베이스에서 사용하는 테이블 모델간의 불일치를 자동으로 SQL을 이용하여 해결
Django의 기본 DB, SQLite
- django는 기본적으로 SQLite 데이터베이스를 지원한다.
- root 폴더에 생성되며, 이름은 db.sqlite3
- 기본적으로 model들은 이 DB에서 table로 생성이 됨
Model 개발하기
1. 테이블 생성(모델)
- class <테이블명>
- <APP이름>/ models.py
from django.db import models
class <테이블명>(models.Model):
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
위는 w3school의 예시코드로 각 변수가 나타내는 것은 아래와 같다.
firstname
: 텍스트 필드, 구성원의 이름, 최대 225 자
lastname
: 텍스트 필등, 구성원의 성, 최대 225자
2. migration
2-1) migrations
- Model의 변경사항을 기록하는 역할
- 설정한 모델을 DB에서 실제 테이블로 생성하는 명령 실행하기위한 첫단계
- 변경사항을 저장하는 곳
py manage.py makemigrations <APP이름>
py manage.py makemigrations members
2-2) migrate 명령어
- migrations에 기록된 파일과 설정값을 읽어 db에 변경사항을 저장하는 역할
- 저장소에 있는 변경사항을 적용하는 단계
py manage.py migrate
참고