참고
https://tutorial.djangogirls.org/ko/django_orm/
ORM(Object Relational Mapping)이란?
객체 관계 매핑은 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다.
기존 데이터베이스를 이용할려면 직접 쿼리를 보내고 데이터를 받아오거나 저장해야 됬습니다. 장고에서는 이런부분들을 조금 더 간단하게 파이썬으로 이용할 수 있도록 하였습니다.
DB 데이터 조회
terminal창에서 입력(장고쉘 활용)
1 | python manage.py shell | cs |
실행하면 장고 인터랙티브 콘솔로 들어가게 됩니다.(이번장에서 인터랙티브 콘솔에서 작업합니다.)
파이썬 프롬프트와 비슷하지만,장고의 여러가지 기능들을 사용할수 있게됩니다.
파이썬의 모든 명령어를 사용할 수 있습니다.
1 2 3 | from blog.models import Post Post.objects.all() | cs |
blog.models을 불러와서 데이터베이스에 담긴 데이터를 조회할 수 있습니다.
DB에 데이터 추가(Post추가해보기)
먼저 Post에는 User 객체에 포함되어있는 author가 필요합니다.
User객체를 먼저 조회해서 알아낸 뒤 Post를 추가해봅시다.
계속 인터랙티브 콘솔에 입력해 봅시다.
User객체 조회
1 2 3 | from django.contrib.auth.models import User User.objects.all() | cs |
우리가 만든 슈퍼계정을 볼수 있습니다.
조회한 사용자의 인스턴스를 me에 저장하고 Post를 추가해 봅시다.
Post추가
1 2 | me = User.objects.get(username='username') Post.objects.create(author=me, title='Sample title', text='Test') | cs |
아래 조회를 테스트하기위해 title과 text를 바꿔서 여러개 추가해 둡시다.
Post 확인
1 | Post.objects.all() | cs |
1 | Post.objects.filter(author=me) | cs |
1 | Post.objects.filter(title__contains='title') | cs |
1 | Post.objects.order_by('created_date') | cs |
1 | Post.objects.order_by('-created_date') | cs |
앞에 -만 붙여주면 된다. DB를 사용해보신 분들은 조금더 간단하고 직관적이라는것을 느낄것이다.
쿼리셋 연결(chaining)하기
쿼리셋들을 연결하여 원하는 데이터를 원하는 형태로 받아올 수 있습니다.
1 | Post.objects.filter(title__contains='title').order_by('-created_date') | cs |
장고쉘 종료
1 | exit() | cs |
'웹개발 > Django' 카테고리의 다른 글
Django 웹디자인(CSS) #7 (0) | 2020.12.13 |
---|---|
Django 템플릿 동적데이터 #6 (0) | 2020.12.13 |
Django urls #4 (0) | 2020.12.13 |
Django 배포해보기 #3 (0) | 2020.12.12 |
Django 객체생성(블로그) #2 (0) | 2020.12.12 |
최근댓글