일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- HTML #CSS
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
- 잔
- 컴퓨터공학 #c #c언어 #문자열입력
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- Today
- Total
영벨롭 개발 일지
[Django]장고 Model 만들기 - ORM & Migration 본문
[ ORM 이란? ]
ORM은 Object Relational Mapping의 약어로 객체(object)와 테이블(table, 관계형 데이터베이스)를 연결(mapping)하는 것입니다.
데이터베이스의 테이블을 객체와 연결하여 SQL 쿼리를 사용하지 않고도 Django를 통해 테이블에 CRUD를 가능하게 합니다.
★ 파이썬 객체를 이용한 Table 표현
다음과 같은 테이블을 Django의 파이썬 객체를 이용하여 models.py 안에서 class로써 테이블을 표현할 수 있습니다.
이때 각각의 데이터들은 타입을 명시해줘야합니다.
학번 | 이름 | 전공 |
20220001 | 김철수 | 컴퓨터공학 |
20220002 | 신짱구 | 컴퓨터공학 |
# ../models.py
from django.db import models
class Student(models.Model):
studentID = models.IntegerField()
name = models.CharField(max_length=30)
major = models.CharField(max_length=100)
[ Migration ]
그렇다면 위에서 우리가 만든 객체(모델)을 데이트베이스에 반영해주어야하는데, 이것을 Migration이라고 합니다.
★ Migration 적용
다음 명령어는 데이터베이스를 처음 초기화하거나 변경사항을 담은 파일을 토대로 변경사항을 반영하는 작업을 수행합니다.
즉 migration을 적용하여 실제 데이터베이스에 변경사항을 적용합니다.
$ python manage.py migrate
★ Migration 생성
다음 명령어는 변경사항을 담은 파일을 생성, 즉 마이그레이션을 생성합니다.
$ python manage.py makemigrations
models.py 에서 모델(객체)를 새로 정의하면 makemigrations를 통해 마이그레이션을 생성하고 migrate를 통해 데이터베이스에 변경사항을 반영합니다.
★ Migration 확인
admin 사이트에서 변경사항이 잘 적용되었는지 확인할 수 있는데 이때 admin.py 에 우리의 모델(객체)를 등록해줘야합니다.
# ../admin.py
from django.contrib import admin
from .models import Student
admin.site.register(Student)
admin 계정을 생성하는 방법은 다음과 같습니다.
$ python manage.py createsuperuser
'Back-end > Django' 카테고리의 다른 글
[Django]글 작성 & 사진 첨부 & 댓글 작성 가능한 모델 만들기 - 정리 (0) | 2022.05.23 |
---|---|
[Django]장고에서 사용자 입력받기 - Form 이용하기 (0) | 2022.05.18 |
[Django]장고를 위한 최소한의 데이터베이스 DB (0) | 2022.05.17 |
[Django]장고 static 파일 다루기 (0) | 2022.05.12 |
[Django] 장고 URL 등록하기: path(), include() (0) | 2022.05.12 |