[Django] 프로젝트 앱 등록 및 모델(Model) 만들기와 Migrations
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
[Django] 프로젝트 앱 등록 및 모델(Model) 만들기와 Migrations
프로젝트에 앱 등록 및 앱 내부에 모델을 생성해보도록 하겠습니다.
프로젝트에 앱 등록하는 이유
프로젝트에 앱을 등록해줘야 django가 인식을 해줌
또한 뷰와 모델 등을 사용할 수 있음
settings에 앱 등록하기
papa_community 프로젝트 폴더에서 settings.py 파일로 들어갑니다.
코드를 보면 INSTALLED_APPS가 있습니다.
기본적으로 Django에서 제공되는 앱들이 있습니다.
이 안에 본인이 만든 앱들을 작성해줍니다.
저는 papa_user 앱을 새로 생성했습니다.
그리고 꼭 저장해주세요!
모델(Model) 만들기
모델
데이터베이스와 연동하는 부분
데이터베이스(DB)에 쌓아줄 데이터의 기준 을 만들어 줌
을 만들어 줌 모델 내의 모든 클래스(Class)는 models.Model을 상속 받음
클래스를 이용해서 모델을 채웁니다!
papa_user 앱에서 클래스를 생성합니다.
Class 생성
장고에서 제공하는 models.Model을 상속해야함
필드 이름과 특정 설정 값, table 선언 등으로 이루어짐
username, password, registered_dttm
필드 이름, 데이터가 들어가는 곳
models.CharField
상속받은 models에서 CharField 속성을 이용
필드에서 사용하는 특정 설정값 (문자열)
max_length : 최대값 설정
verbose_name : 필드에 대한 명명 (관리자 페이지에서는 username이 아닌 사용자명으로 보임)
models.DateTimeField
날짜와 시간을 가져오는 필드 속성
auto_now_add : 저장하는 순간의 시간을 저장
Class meta
papauser Class에서 나오는 데이터가 어떤 이름의 테이블에 저장되는지 정의
기본적으로 생성되는 앱들과 구분해서 테이블명을 만들기 위해 직접 작성
db_table = 'papa_user_table' : 앞으로 저장되는 데이터는 'papa_user_table'이라는 DB 테이블에 저장
이제 모델을 다 작성해줬으니, Django에게 모델을 만들었다는 것을 알려줘야 합니다.
Migration을 이용합니다.
Migrations
모델 클래스의 수정 및 생성을 DB에 적용하는 과정
모델 변경 내역을 관리
python3 manage.py makemigrations
명령어를 치면 아래와 같이 papa_user 앱을 migration한다고 나옵니다.
자동적으로 migration 파일을 생성합니다.
python3 manage.py migrate
migration 파일을 DB에 적용하는 명령어
settings에서 등록된 앱들이 사용하는 테이블을 자동으로 생성
db.sqlite3이 생성
앱 설정을 안해주면 migrate를 할 수 없음
migrate가 잘 됬다면 위와 같은 화면이 보입니다.
DB 접속 및 테이블 확인
DB 접속
그러면 이제 DB에 테이블이 잘 생성이 됐는지 확인해 보겠습니다.
sqlite3 db.sqlite3
위의 명령어를 이용해서 DB에 접속합니다.
테이블 확인
.schema papa_user_table
위의 명령어는 table의 구조를 확인하는 명령어입니다.
아까 Class에서 입력한 내용들이 SQL 구문 형식으로 바뀌어서 schema(구조)가 저장됩니다.
앱 등록, 모델 만들기, Migration 과정을 봤습니다.
앞으로 앱과 모델들이 많이 생성될 것 같으니,
이 과정은 머리에 잘 넣어두고 공부해야 될 것 같습니다!
감사합니다 :)
from http://greatpapa.tistory.com/17 by ccl(A) rewrite - 2020-03-12 19:54:17
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기