Django ORM
ORM(Object-Relational Mapping)이란 객체(Object)와 관계형 DB(Relational Database)의 데이터를 매핑(mapping)해주는 것을 의미한다. 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해서 SQL 쿼리문 없이도 DB의 데이터들을 다룰 수 있다. ORM을 사용하면 불필요하게 많이 적지 않아도 되니 빠르게 개발이 가능하고, 생산성이 좋아진다.
Django ORM은 model class를 통해서 객체를 만들고 이 객체를 통해서 DB에 접근한다.
쿼리셋 (QuerySet)
전달받은 모델의 객체 목록. 쿼리셋은 DB로부터 데이터를 읽고, 필터를 걸거나 정렬을 할 수 있음.
#django interactive console
(myvenv) ~/djangogirls$ python manage.py shell
>>> from blog.models import Post
#print every Post objects
>>> Post.objects.all()
#check users
>>> from django.contrib.auth.models import User
>>> User.objects.all()
#save new Post object
>>> me = User.objects.get(username='yourname')
>>> Post.objects.create(author=me, title='title1', text='Test')
#filtering by name
>>> Post.objects.filter(author=me)
#filtering by title containg 'title'
>>> Post.objects.filter(title__contains='title')
#filtering by published_date
>>> from django.utils import timezone
>>> Post.objects.filter(published_date_lte=timezone.now())
#publish -> function of model Post
>>> post = Post.objects.get(title="title")
>>> post.publish()
#arrange
>>> Post.objects.order_by('created_date')
>>> Post.objects.order_by('-created_date')
#chaining
>>> Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
728x90
반응형
'WEB' 카테고리의 다른 글
[PHP] 데이터 정제 (0) | 2019.12.10 |
---|---|
[Django/Blog] DB에서 데이터를 가져와 템플릿에 적용 (0) | 2019.12.08 |
[Django/Blog] View / Template (0) | 2019.12.07 |
[Django/Blog] URL (0) | 2019.12.07 |
[Django/Blog] 관리자 설정 (0) | 2019.12.07 |