Python
Python 웹 개발(Django) - 데이터 관리 모델
developers developing
2022. 12. 14. 17:00
1. migrate와 테이블
1) 기본으로 설치된 앱 확인
config/settings.py
- INSTALLED_APPS : "photo" 등록
2) config/settings.py 데이터베이스 정보 확인
3) 테이블 생성하기
migrate : 데이터베이스에 변경 사항을 적용
- (venv) PS D:\source\djangosource\myphoto> python manage.py migrate
4) DB Browser for SQLite로 테이블 확인
- [데이터베이스 열기]
- D:\source\djangosource\myphoto\db.sqlite3
- 테이블 작업을 위한 쿼리문을 알아서 수행
2. 모델 만들기
Model
- 앰의 데이터와 관련된 부분을 다루는 클래스
- 데이터베이스에 저장될 데이터의 타입을 정의하고 설정 sql의 DML관련된 작업
- 테이블 자동 생성
models.Model : 클래스 상속
models
- django 의 데이터베이스와 관련되 내용을 미리 작성해 놓은 도구
- 사용자 정의 모델 작성시 models에서 제공해주는 모델을 상속받아 작성 가능
CharField : 문자열 담기(길이제한 필요)
TextField : 문자열 (길이제한 필요없음)
IntegerField : 정수
DateField : 날짜
DateTimeField : 날짜 + 시간
FileField : 파일
ImageField : 이미지 파일
ForeignKey : 외래키
OneToOneField : 1대1관계
ManyToManyField : 다대다 관계
1) photo/models.py 모델 작성
class Photo(models.Model):
title = models.CharField(max_length=50)
author = models.CharField(max_length=50)
image = models.CharField(max_length=200)
description = models.TextField()
price = models.IntegerField()
# 자바의 toString()역할
def __str__(self) -> str:
return self.title + " " + self.author + " " + self.image
2) migrate로 테이블 생성 명령어 실행
(venv) PS D:\source\djangosource\myphoto> python manage.py makemigrations
(venv) PS D:\source\djangosource\myphoto> python manage.py migrate
정리
- models.py : 테이블 정의
- makemigrations : 모델에 변경한 내용을 파일로 만들어 주는 작업
- (venv) PS D:\source\djangosource\myphoto> python manage.py makemigrations
- migrate : 데이터베이스에 변경 사항을 적용
- (venv) PS D:\source\djangosource\myphoto> python manage.py migrate
- 실제 생성된 테이블 확인
- DB Browser for SQLite