Django 모델(Models)란?
□ 프로젝트에서 애플리케이션(App)을 생성하고, 앱(APP) 기능 별 여러 데이터 값들을 생성, 수정, 삭제, 저장등을 위한 데이터 관리를 위해 테이블 객체를 생성하는데 이를 위한 것이 모델(Models)임.
□ 그래서 우리는 해당 모델을 사용하여 테이블을 생성하기전에 데이터를 어떻게 처리할지 고민해야함
□ 우리는 프로젝트 생성 후 관리자, 즉, 슈퍼유저(admin)를 만들기위해 기본 테이블이 필요하여 생성전에 유저 데이터들이 저장될 수 있는 테이블을 생성했음.
python manage.py migrate
□ 위 코드를 실행하여 프로젝트 생성시 필요한 기본적인 테이블과 앱들을 설치했으며, 설치된 앱들은 모두 환경설정폴더에 모두 저장되었고, 환경설정 폴더는 최상위 폴더의 settings.py임.
□ 모델 생성과정
1 단계 : App 기능을 위한 테이블 논리 모델링 |
2 단계 : Django 코드 코딩으로 모델(Model) 객체(테이블 클래스) 생성 후 admin.py에 등록[admin.site.register(모델 클래스명)] |
3 단계 : 상위 폴더 > settings.py > Installed_apps 부분에 App을 위한 모델 객체 등록 |
4 단계 : cmd창에서 py manage.py makemigrations *모델과 관련하여 신규 생성, 삭제, 수정작업 시 반드시 진행 |
5 단계 : 최종 반영을 위해 cmd 창에서 python manage.py migrate 입력 |
○ 1 단계 : App 기능을 위한 테이블 논리 모델링
- onememos app을 생성하였고, 이를 위한 테이블 논리 모델링 실행
○ 2 단계 : Django 코드 코딩으로 모델(Model) 객체(테이블 클래스) 생성 후 admin.py에 등록[admin.site.register(모델 클래스명)]
from django.db import models
class Memo_TB(models.Model):
memo_text = models.CharField(max_length=250) #문자형 필드 : models.데이터타입, 최대길이 200
published_date = models.DateTimeField(auto_now_add=True) #날짜형 필드 : models.데이터타입 + 현재 시간이 자동으로 입력되도록 auto_now_add=True 설정
- admin.py 에 모델 등록 : admin.site.register(models 클래스명) *import를 활용해 models.py 불러옴
from django.contrib import admin
#onememos app의 models.py에 생성한 Memo_TB란 테이븍 클랙스 임포트
from onememos.models import Memo_TB
# Register your models here.
admin.site.register(Memo_TB)
○ 3 단계 : 상위 폴더 > settings.py > Installed_apps 부분에 App을 위한 모델 객체 등록
- "app명.apps.app명Config"
○ 4 단계 : cmd창에서 py manage.py makemigrations *모델과 관련하여 신규 생성, 삭제, 수정작업 시 반드시 진행
py manage.py makemigrations
- 위 명령어가 실행되면 app > migrations 폴더에 > 파일이 생성되며 조회화면 아래와 이미지와 같음.
- 생성된 모델 클래스의 필드관련하여 값 수정 후 똑같이 py manage.py makemigrations 실행하면 변경정보가 출력이됨과 동시에 해당 정보가 저장된 파일이 생성되는 데 이또한 app > migrations 폴더 에 있음.
*DB관련 수정을위해 models.py를 작성,수정, 삭제를 진행했다면 작업이 끝난 후 py manage.py makemigrations 명령어 실행
○ 5 단계 : 최종 반영을 위해 cmd 창에서 python manage.py migrate 입력
python manage.py migrate
□ 최종확인
○ 서버구동
python manage.py runserver
○ admin url 접속
'Python > Django Ⅰ' 카테고리의 다른 글
SQLite 를 활용한 DB 조회 (0) | 2024.04.15 |
---|---|
서브페이지 URLPATTERNS (0) | 2024.04.15 |
Django 주요개념 : 정리 (0) | 2024.04.11 |
가상환경 설치 & 장고 설치+삭제 & 서버구동 + superuser 생성 (0) | 2024.04.08 |
장고란?(feat.MTV모델) (0) | 2024.02.04 |