* Django에서 DB는 기본적으로 SQlite 를 사용한다. SQlite는 python에서 기본적으로 제공된다.
1. 데이터베이스 설치.
처음 migrate 할때는 앱이름 명시 하지 않음. 기본적으로 설치된 앱에 걸쳐 적용할 migrate가 있기 때문.
python manage.py migrate
migrate 명령: installed_APPS 설정 탐색하여, DB 반영. 즉, migrate명령은 installed_APPS에 등록된 앱에 한해 실행되어짐.
*관련 명령어
python manage.py makemigrations (APP-NAME) #마이그레이션 파일 생성
python manage.py migrate (APP-NAME) #마이그레이션 적용
python manage.py showmigrations (APP-NAME) #마이그레이션 적용 현황
python manage.py sqlmigrate (APP-NAME) (migration-NAME)
2. 모델 만들기. *모델: 데이터베이스의 구조.
필자는 예제로 사진(Image), 댓글(Comment) 두개의 모델을 먼저 생성해 보겠다.
images/models.py
3. 모델 활성화.
먼저 , 현 project 에게 images app 이 설치 되어 있다는 것을 알려야 함. 이를 위해 세팅의 설치앱 목록에 images 추가
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'images',
]
이제 장고는 images app이 포함된것을 알게 됨. 이제 다른 명령을 내려보자.
python manage.py makemigrations images
makemigrations
:모델을 생성하거나 변경시킨 사항을 migration 으로 저장시키고 싶다는 것을 Django 에게 알려준다.
python manage.py sqlmigrate images 0001(migration-name)
sqlmigrate
: migration 이름을 인수로 받아, 실행하는 SQL 문장을 보여줌.
최종 확인 후, migrate를 실행시켜, DB에 반영. -> DB에 테이블 생성.
* 즉, 모델 생성부터 DB반영까지의 3단계
1) models.py 에서 모델 생성 또는 변경
2) python manage.py makemigrations : 변경사항에 대한 migration 생성
3) python manage.py migrate : 변경사항 DB에 최종 반영.
*장고 어드민에서 관리하려면 어드민에 모델 추가.
admin.py
모델 예시.
'Back-end > Python' 카테고리의 다른 글
[Python]Django Template Languages 장고 템플릿 언어 (0) | 2018.04.01 |
---|---|
[Python]Django Static 파일. (0) | 2018.03.25 |
[Python]Django App 이란? MTV 패턴이란? (0) | 2018.03.24 |
[Python]장고앱 프로젝트 ch1. 프로젝트, 앱 생성하기 (0) | 2018.03.20 |