Django 는 DB의 테이블을 정의하고 데이터를 조작할 수 있는 기능들을 제공하고 있다.
생성 과정
1. Model 클래스 작성
- 생성한 app의 models.py에 클래스 작성
- 클래스는 관례적으로 앞글자를 대문자를 써서 구분
- 필드명을 정의하고 "데이터 유형" 과 "제약 조건"을 정의
- id 필드는 Django에서 자동으로 생성한다.
- django.db.models 모듈의 Model이라는 부모 클래스를 상속 받는다.
- Model은 model과 관련된 모든 코드가 작성되어 있는 클래스로 개발자는 가장 중요한 테이블 구조에 대한 코드만 작성하도록 하기 위한 것(상속을 활용한 프레임워크의 기능 제공)
# my_app/models.py
class My_App(models.Model):
title = models.CharField(max_length=10)
content = models.TextField()
https://docs.djangoproject.com/en/5.1/ref/models/fields/#field-options
2. Migrations
model 클래스의 변경사항(필드 생성, 수정 삭제 등)을 DB에 최종 반영하는 방법
2.1 model class 기반으로 최종설계도(migration) 작성
$ python manage.py makemigration
2.2 최종 설계도를 DB에 전달하여 반영
$ python manage.py migrate
만약 model class에 변경사항이 생겼다면 반드시 새로운 설계도를 생성하고 이를 DB에 반영해야함
VsCode 에 경우 Database Client 확장 프로그램을 통해 Database를 연결해 확인할 수 있다.
1. 확장프로그램 설치
2. 왼쪽에 생성된 아이콘을 클릭하고 Create Connection 클릭
3. SOLite 클릭
4. Database Path에 db.sqlite3 파일경로 삽입
- 이때 오른쪽 하단에 All Files로 변경해야 db.sqlite3 파일이 보인다
5. Connect 클릭 후 생성 확인
3. Automatic admin interface
Django가 추가 설치 및 설정 없이 자동으로 제공하는 관리자 인터페이스이다
데이터 확인 및 테스트 등을 진행하는데 매우 유용하다.
3.1 admin 계정 생성
- email은 선택사항이기 때문에 입력하지 않아도 된다
- 비밀번호 입력시 보안상 터미널에 출력되지 않아 무시하고 입력하면 된다.
$ python manage.py createsuperuser
3.2 admin에 모델 클래스 등록
- admin.py에 작성한 모델 클래스를 등록해야만 admin site에서 확인 할 수 있다.
# my_app/admin.py
from django.contrib import admin
from .models import My_App
admin.site.register(My_App)
4. 데이터 베이스 초기화
1. migration 파일 삭제
2. db.sqlite3 파일 삭제
__init__.py 와 migrations 폴더는 지우면 안된다.
'Django' 카테고리의 다른 글
Django Form [Django] (0) | 2024.09.25 |
---|---|
Django ORM with view [Django] (0) | 2024.09.24 |
Django ORM [Django] (3) | 2024.09.23 |
Django 프로젝트 생성하기 [Django] (1) | 2024.09.18 |
django 란 무엇인가? [django] (0) | 2024.09.17 |