백엔드
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은 선택사항이기 때문에 입력하지 않고 진행 가능
- 비밀번호 입력 시 보안상 터미널에 출력되지 않으니 무시하고 입력 이어가기
2.2 admin에 모델 클래스 등록하기
admin.py에 작성한 모델 클래스를 등록해야만 admin site에서 확인 가능합니다.
# articles/admin.py
from django.contrib import admin
from .models import Article
admin.site.register(Article)
참고
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(삭제)입니다.