ORM을 통해 데이터 받아오기

2023. 4. 26. 09:30·Python/Django
반응형

Model Manager

기본적인 인터페이스를 제공하는 것은 ModelCls.objects가 제공하게 된다.

ModelCls.objects.all() 
ModelCls.objects.all() .order_by(”-id)[:10]
ModelCls.objects.create(title="New Title")

qs = Post.objects.all().order_by('-id')[:2] #id 부분에 정렬 기준이 될 column을 넣음
print(qs.query)
qs

ㅇ

위와 같이 정렬도 가능하다.

query = "번째"

qs = Post.objects.all()\
    .filter(message__icontains=query)\
    .order_by('-id')
print(qs.query)
qs

r 채이닝 쿼리가 여러줄이 나올때, 다른 프로그램처럼 그냥 엔터를 치면 오류가 난다.

그래서 맨뒤에 역슬래쉬 \ 를 붙여주는 것으로 다음 줄과 같은 라인에 있는 취급을 해줘야 한다.

또는 아래와 같이 처리가 가능하다

qs = Post.objects.all()
qs = qs.filter(message__icontains=query)
qs = qs.order_by('-id')

QuerySet은 Lazy 한 특성을 갖고있기 때문에, QuerySet을 만드는 동안에는 DB 접근을 하지 않는다.

실제로 데이터가 필요한 시점(print문,list,for 내에서 실제로 데이터가 쓰일때) db에 접근을 하게 됩니다. (JPA에서 queryFactory로 조건문을 만들 때, fetch하기 전까지는 db에 쿼리를 날리지 않는 것과 동일)

하나의 객체를 가져올 때

queryset.get(조건)
queryset.first()
queryset.last()

  • get을 사용하는 경우, 하나 이상의 값을 반환하거나, 값이 없는 경우 에러를 발생시킨다.
  • first나 last의 경우에는 하나의 값을 반환하거나, None을 반환한다.


Uploaded by N2T

반응형

'Python > Django' 카테고리의 다른 글

OneToOneField  (0) 2023.04.28
Django Reverse_name  (1) 2023.04.28
Static & Media  (2) 2023.04.26
PIP로 설치된 패키지 찾는법  (1) 2023.04.24
Django의 MVT패턴  (0) 2023.04.24
'Python/Django' 카테고리의 다른 글
  • OneToOneField
  • Django Reverse_name
  • Static & Media
  • PIP로 설치된 패키지 찾는법
cvcvcx9
cvcvcx9
프로그래머
  • cvcvcx9
    참치와 연어가 좋아
    cvcvcx9
  • 전체
    오늘
    어제
    • 전체보기 (90)
      • JAVA (22)
        • 웹 프로그래밍 딥하게 파보기 (7)
        • String (2)
        • 자바의 다양한 객체 (3)
        • 클래스와 인터페이스, 추상클래스 (2)
        • 컬렉션과 자료구조 (6)
        • 제네릭 (0)
      • SPRING (3)
      • JPA 게시판 (19)
        • JPA게시판 만들기 (7)
        • JPA (10)
        • Spring Security (2)
        • 오류정리 (0)
      • 코딩테스트 준비 (4)
        • 자료구조 (3)
      • Python (21)
        • Django (21)
      • 컴퓨터 기초 (8)
        • 컴퓨팅사고 (7)
      • Web (7)
        • 유용한 설정 (6)
        • Git 관련 (1)
      • 데이터베이스 (1)
        • 친절한 SQL튜닝 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 인기 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
cvcvcx9
ORM을 통해 데이터 받아오기
상단으로

티스토리툴바