많이 해봤더라도, 아직 미숙하기에 한번 더 리마인드 해야할 것 같다.
Django Model
장고 내장 ORM
데이터베이스 테이블과 파이썬 클래스를 1:1로 매핑.
모델 클래스 명은 단수형으로 지정한다.
클래스기때문에 첫글자가 대문자인 PascalCase 네이밍 규칙을 따라야한다.
매핑되는 모델 클래스는 DB 테이블 필드 내역이 일치해야한다.
모델을 만들기 전에 서비스에 맞는 DB 설계과정이 들어가야한다.
모델을 개발할때는 아래의 순서를 따르면 된다.
1. 모델 클래스 작성
2. 마이그레이션 파일 생성.
3. 마이그레이트
4. 모델활용
만약 이미 DB 가 구축되어 있다면, inspectdb 명령어를 이용하여
데이터베이스로부터 모델 클래스 소스를 생성할 수도 있다.
DB 테이블명은 "앱이름_모델명" 으로 지어진다. ( Meta로 따로 지정 해주지 않을 시)
공부를 하면서 새롭게 알게 된 건데,
만약 내가 아래 명령어로 새롭게 instagram 앱을 migrate 했다고 해보자.
python manage.py migrate instagram
이 상태에서 아래 명령어를 이용하면,
실제 어떤 쿼리가 실행되었는지 알 수 있다.
python manage.py sqlmigrate instagram 0001_initial
나는 SQL 을 먼저 배우고 django를 접해서 그런가
사실 orm을 이용하는 것보다는 쿼리가 훨씬 직관적으로 다가오는 경향이 있다.
가끔 오류를 체크할 때 쓰기 좋을 것 같다.
아주 좋다... 너무 좋아ㅏ... 속시원하다...
sqlite 가 설치가 되어 있다면,
dbshell 을 이용해서 보는 것도 한가지의 방법이다.
python manage.py dbshell
.tables
테이블명도 확인 가능하다.
'Archive > Develop' 카테고리의 다른 글
[ Django ] DateTimeField | auto_now_add VS auto_now (0) | 2021.11.16 |
---|---|
[ Django ] Django Model Field (0) | 2021.11.16 |
[ Django ] 블로그 기능 만들기 | blog app 만들기(기본 CRUD) (0) | 2021.11.16 |
개발 방법론 | SPA(Single Page Application) (0) | 2021.11.15 |
[ Django ] Django REST Framework 000 (0) | 2021.11.15 |