Django ORM의 get(), values(), values_list()

choi·2025년 3월 12일

개념_정리

목록 보기
4/5

Django ORM에서 get(), values(), values_list()의 차이

1. get(): 단일 객체 조회

특정 조건을 만족하는 "한 개의 객체만" 가져올 때 사용
결과가 없거나 여러 개면 오류 발생
ex) 
user = User.objects.get(userid='test01')
--> 
홍길동 hong@example.com

2. values(): 특정 필드만 가져오기 (dict 형태)

여러 개의 결과를 가져오되, 특정 필드만 딕셔너리(dict) 형태로 반환
ex)
users = User.objects.values('name', 'email')
--> 
[
    {'name': '홍길동', 'email': 'hong@example.com'},
    {'name': '김철수', 'email': 'kim@example.com'},
    {'name': '이영희', 'email': 'lee@example.com'}
]

3. values_list(): 특정 필드 가져오기 (tuple 형태)

여러 개의 결과를 가져오되, 특정 필드만 tuple 형태로 반환
ex)
users = User.objects.values_list('name', 'email')
-->
[
    ('홍길동', 'hong@example.com'),
    ('김철수', 'kim@example.com'),
    ('이영희', 'lee@example.com')
]

4. values_list(flat=True): 단일 필드 리스트 반환

하나의 필드만 가져오고, 리스트(list) 형태로 반환
ex) 
emails = User.objects.values_list('email', flat=True)
-->
['hong@example.com', 'kim@example.com', 'lee@example.com']
profile
늦게나마 정신을 차리려고 하는 개발 뭐시기하는 사람

0개의 댓글