데이터 분석 기술 블로그

Django에 대하여(11)_모델 필드와 Admin site 본문

백엔드

Django에 대하여(11)_모델 필드와 Admin site

데이터분석가 이채은 2024. 4. 1. 09:00

1. Model Field

Model Field란, DB 테이블의 필드(열)를 정의하고 해당 필드에 저장되는 데이터 타입과 제약조건을 정의하는 것입니다.

  • CharField(): 길이의 제한이 있는 문자열을 넣을 때 사용(필드의 최대 길이를 결정하는 max_length는 필수 인자)
  • TextField(): 글자의 수가 많을 때 사용
  • DateTimeField(): 날짜와 시간을 넣을 때 사용
    • auto_now: 데이터가 저장될 때마다 자동으로 현재 날짜 시간을 저장
    • auto_now_add: 데이터가 처음 생성될 때만 자동으로 현재 날짜 시간을 저장

2. Admin site

Automatic admin interface

Django는 추가 설치 및 설정 없이 자동으로 관리자 인터페이스를 제공합니다. 따라서 데이터 확인 및 테스트 등을 진행하는데 매우 유용합니다.

 

2.1 admin 계정 생성하기

python manage.py createsupersuser
  • email은 선택사항이기 때문에 입력하지 않고 진행 가능
  • 비밀번호 입력 시 보안상 터미널에 출력되지 않으니 무시하고 입력 이어가기

DB에 생성된 admin 계정 확인

 

2.2 admin에 모델 클래스 등록하기

admin.py에 작성한 모델 클래스를 등록해야만 admin site에서 확인 가능합니다.

# articles/admin.py

from django.contrib import admin
from .models import Article

admin.site.register(Article)

admin site 로그인 후 등록된 모델 클래스 확인


데이터 생성, 수정, 삭제 테스트


테이블 확인


참고

1. 데이터베이스 초기화 하는 법

 

2. Migrations 기타 명령어

python manage.py showmigrations
  • migrations 파일들이 migrate 됐는지 안 됐는지 여부를 확인하는 명령어
  • [X] 표시가 있으면 migrate가 완료되었음을 의미

 

python manage.py sqlmigrate articles 0001
  • 해당 migrations 파일이 SQL 언어(DB에서 사용하는 언어)로 어떻게 번역되어 DB에 전달되는지 확인하는 명령어

 

3. 첫 migrate 시 출력 내용이 많은 이유

Django 프로젝트가 동작하기 위해 미리 작성되어 있는 기본 내장 app들에 대한 migration 파일들이 함께 migrate 되기 때문입니다.

 

4. SQLite

SQLite는 데이터베이스 관리 시스템 중 하나이며 Django의 기본 데이터베이스로 사용됩니다. 파일로 존재하며 가볍고 호환성이 좋습니다.

 

5. CRUD

CRUD란, 소프트웨어가 가지는 기본적인 데이터 처리 기능으로 Create(저장), Read(조회), Update(갱신), Delete(삭제)입니다.