본문 바로가기
Web developer/Django

[Django] ORM #1

by doongjun 2020. 11. 6.

노마드코더의 강의를 듣고 중요한 내용을 정리하였습니다.


ORM

 

ORM은 각 언어별로 있는 기능이다. 원래 데이터베이스 서버의 어떤 데이터를 검색, 추가, 수정, 삭제 등을 할때 SQL을 사용해야 한다. 그런데 SQL을 사용하지 않고 파이썬 코드를 활용해서 SQL코드를 만들어내는 라이브러리가 있는데 그것을 ORM, 장고에서는 Django Model 이라고 한다. 장고의 ORM기능은 데이터베이스 구조를 머리속 그림대로 구현하는데에 편리하다. SQL에 대해 알지 못하더라도 DB구조를 장고에서는 파이썬 코드를 통해 비교적 쉽게 해결할 수 있는 것이다. 

 

users 어플리케이션에서 user가 가질 수 있는 데이터베이스 테이블에 칼럼을 avatar, gender, bio, birthday 등으로 설정하고자 할 때 models.py에 다음과 같이 설정해 줄 수 있다.

    avatar = models.ImageField(blank=True)
    gender = models.CharField(choices=GENDER_CHOICES, max_length=10, blank=True)
    bio = models.TextField(default="", blank=True)
    birthdate = models.DateField(blank=True, null=True)
    language = models.CharField(
        choices=LANGUAGE_CHOICES,
        max_length=2,
        blank=True,
        default=LANGUAGE_KOREAN,
    )
    currency = models.CharField(
        choices=CURRENCY_CHOICES, max_length=3, blank=True, default=CURRENCY_KRW
    )
    superhost = models.BooleanField(default=False)

위처럼 파이썬을 이용해서 데이트베이스 칼럼을 만들고 각 칼럼에는 avatar, gender, bio, birthday 등을 생성할 수 있다.

각 필드는 유효성 검사를 할 수 있고 models.py에서 작성한 것은 장고가 데이터베이스 테이블로 만들어 준다.

 

장고와 데이터베이스의 동기화에 대해 궁금하다면,

2020/11/06 - [Python/Django] - [Django] 마이그레이션

 

[Django] 마이그레이션

어플리케이션, 이전포스팅 참고 2020/11/05 - [Python/Django] - [Django] 어플리케이션 pipenv shell 가상환경 안에서 장고를 설치한다. >p.." data-og-ho.." data-og-host="doongjun.tistory.com" data-og-sourc..

doongjun.tistory.com

 

'Web developer > Django' 카테고리의 다른 글

[Django] ORM #2  (0) 2020.11.09
[Django] 모델 상속  (0) 2020.11.06
[Django] 마이그레이션  (0) 2020.11.06
[Django] 어플리케이션  (0) 2020.11.05
[Django] 장고 시작하기  (0) 2020.11.05

댓글