본문 바로가기

BACK-END/Django

[Django][장고걸스][ubuntu] Django ORM과 쿼리셋[Querysets]

쿼리셋이란 전달받은 모델의 객체 목록이다.

데이터베이스로부터 데이터를 읽고, 필터를 걸거나 정렬할 수 있다

 

 

로컬 콘솔에서 아래 명령어를 입력하면, 장고 interactive console로 들어가게 된다. 

장고 명령어 입력이 가능하다.

 

 

python manage.py shell

 

 

 

모든 객체 조회하기

 

 from blog.models import Post
 Post.objects.all()

 

결과는 <QuerySet [<Post: my post title>, <Post: another post title>]> 이렇다.

 

 

 

객체 생성하기

 

from django.contrib.auth.models import User
me = User.objects.get(username='ola')
Post.objects.create(author=me, title='Sample title', text='Test')

 

 

 

필터링하기

 

Post.objects.filter(title__contains='title')

 

제목에서 'title'라는 글자가 들어간 글만 뽑아낸다.

 

title와 contains 사이에 _는 2개이다.

title[필드 이름]과 contatins[연산자과 필터]를 _를 2개를 사용해 구분한다.

 

 

 

정렬하기

 

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')

 

 

 

쉘 종료하기

 

 exit()