Model Intro
DB
ORM
Migrations
Admin
CRUD
참고: SQLite3로 가볍게 배우는 데이터베이스: SQL 기초 실습
용어
특징
foregin key
, primary key
가 뭔지 정의 해줘야 장고 ORM이 SQL구문을 맞춰줍니다정리
OOP
=객체지향프로그램
=클래스와 인스턴스를 사용하는 프로그램
에서 DB를 편리하게 관리하기 위해 ORM 프레임워크를 사용합니다.python manage.py makemigrations
makimigrations
는 models에 적용한 변경 내용을 감지 및 기록하고 그내용을 담은 migrations 파일을 생성합니다.python manage.py showmigrations
python manage.py sqlmigrate articles
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
employee
[X] 0001_initial
notice
[X] 0001_initial
project
[X] 0001_initial
schedule
[X] 0001_initial
sessions
[X] 0001_initial
python manage.py migrate
migrate
는 그렇게 기록된 파일들과 설정값들을 읽어들여 해당 변경사항을 db에 실제로 저장
하는 역할을 합니다.💡migration tip
makemigrations
이후에는 migration 폴더를 확인하는 습관을 갖는게 좋다.
DB는 중요하기 때문에 무엇이 수정되었는지 다시 한번 확인!
makemigrations [app-name]
예상치 못한 migration을 방지하기 위해 앱 이름을 특정하는 것이 좋다.
showmigrations
를 통해서 적용 상태를 조회
할 수 있다.
[ ] : 적용 전
[x] : 적용 후
실제 DB에는 sql 쿼리로 명령이 전달이 된다.
migration 파일은 쿼리는 아니다.
따라서 sqlmigrate 명령을 통해 sql로도 확인하는 습관이 필요하다.
이미 적용한 migration 파일은 지우지않고 이름을 변경해 둡니다.
프로젝트/앱 생성 후 처음 migrate 할 때는 app 이름을 명시하지 않는다.
이는 장고 기본 앱에, 여러 앱에 걸쳐서 적용할 migrate가 있기 때문이다.
no such table, column 등의 오류는 migration 관련 문제이다.
장고가 제공하는 admin을 이용해서 CRUD 연습해보기
SQL Tutorial
Create(생성)
Read(읽기)
Update(갱신)
Delete(삭제)
python manage.py createsuperuser
관리자 계정 만들기
아이디와 비밀번호를 입력하고 관리자 페이지로 들어가면
장고가 지원하는 모듈로 만들어진 관리자용 게시판을 사용할 수 있습니다.
디버깅이나 테스트에 유용하게 사용할 수 있습니다.