장고로 가상환경을 실행 한뒤 manage.py 가 들어있는 디렉토리에서 아래 명령어를 입력하면 shell에서 장고기능을 사용할 수있다
python manage.py shell
shell에서 모델파일을 import한후 <모델클래스명>.objects.all() 을 입력하면 모든 오브젝트를 불러올 수 있다.
shell에서 특정 name을 갖는 오브젝트를 불러올 수 있다
>>> from star.models import Drink
>>> Drink.objects.all()
#출력결과 (저장한 데이터 쿼리셋 형태로 불러온다)
<QuerySet [<Drink: Drink object (1)>, <Drink: Drink object (2)>, <Drink: Drink object (3)>, <Drink: Drink object (4)>, <Drink: Drink object (5)>, <Drink: Drink object (6)>, <Drink: Drink object (7)>, <Drink: Drink object (8)>, <Drink: Drink object (9)>, <Drink: Drink object (10)>, <Drink: Drink object (11)>, <Drink: Drink object (12)>, <Drink: Drink object (13)>, <Drink: Drink object (14)>, <Drink: Drink object (15)>, <Drink: Drink object (16)>, <Drink: Drink object (17)>, <Drink: Drink object (18)>, <Drink: Drink object (19)>, <Drink: Drink object (20)>, '...(remaining elements truncated)...']>
만약 id=1인 값의 내용만 가져오고싶으면 get메서드를 이용할수 있다
get 메서드는 쿼리셋이 아닌 쿼리셋안에 들어있는 객체의 형태로 불러온다
>>> Drink.objects.get(id=1)
# 출력결과
<Drink: Drink object (1)>
만약 id=1인 데이터의 이름을 보고싶다면
>>>drink = Drink.objects.get(id=1)
>>>drink.name
# 출력결과
'나이트로 바닐라 크림'
뒤에 .(db에 저장된 칼럼이름) 을 붙여 내용을 확인 할 수있다.
만약 객체가 아닌 쿼리셋의 형태로 불러오고싶다면 filter메서드를 사용하면 된다
>>>drink = Drink.objects.filter(id=1)
>>>drink
#출력결과
<QuerySet [<Drink: Drink object (1)>]>
get과는 다르게 출력결과에서 QuerySet 이란 내용이 생겼다
쿼리셋의 내용을 보고싶으면 .valses() 메서드를 이용하면 된다
>>>drink.values()
# 출력결과
<QuerySet [{'id': 1, 'name': '나이트로 바닐라 크림', 'category_id': 1}]>
이렇게 id=1인 값의 데이터내용을 모두 볼수있다