IT_developers

Python 웹 개발(Django) - 데이터 관리 모델 본문

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

 

 

Comments