[CRUD]실습-2

DONGHYUN KOO·2020년 9월 10일
0

Django

목록 보기
9/9

장고 쉘을 통한 쿼리셋 실습 내용정리

먼저 커맨드 창에서 파이선 쉘을 실행 시켜 진행을 합니다.

python manage.py shell
  • 명령어를 입력하게 되면 파이썬 환경과 동일하게 연습을 진행 할 수 있습니다
  • 우선 실습전에 실습할 model 경로를 import를 진행합니다.
  • 선행 실습에서 진행했던 dog 클래스를 import 하여 진행 하였습니다.
    from dogs.models import Owner,Dog

- MySQL을 다른창에서 실행시킨 후 즉각적으로 확인하면서 실습을 진행했습니다.
- 쿼리셋의 경우 중요한 내용이며, 지속적인 연습이 중요합니다.
- 실습모델에서 진행한 클래스를 기준으로 진행

>>>Owner.objects.create(name="홍길동",age=20,eamil="aaaa@aaaa.com",address="서울"phone_number="010-1234-1234")

>>> <Owner :홍길동>
>>> MySQL창에서 SELECT * FROM 테이블명
>>> 생성된 테이블에 홍길동 데이터가 들어간 것을 확인할 수 있습니다.

>>>다른 방법은 변수에 정보를 저장해서 데이터를 생성할수 있다
>>>sam =Owner(name="춘향이",age=18,email="bbbb@bbbb.com",address="광양",phone_number="010-2222-2323")
>>> sam
>>> <Owner :춘향이>
>>> MySQL의 테이블을 확인해보면 데이터가 조회가 되지 않는다. 변수에 데이터를 넣어 생성하는 경우에는 변수.save()를 추가적으로 진행해 주어야 데이터가 조회가 된다.
>>> sam.save()

이제 데이터를 생성하는 CREATE단계를 진행하였으니, READ 단계를 진행 해보겠습니다.
>>>Owner.objects.all() #모든 오너의 정보를 읽어드림
>>><QuerySet [<Owner: 홍길동>, <Owner: 춘향이>]

>>>Owner.object.values() #오너의 속성값을 모두 조회
>>> <QuerySet [{'id': 1, 'name': '홍길동', 'age': 20, 'email': 'aaaa@aaaa.com', 'address': '서울 ', 'phone_number': '010-1234-1234'}, {'id': 2, 'name': '춘향이', 'age': 18, 'email': 'bbbb@bbbb.com', 'address': '광양', 'phone_number': '010-2222-2323'}]

특정데이터만  가지고 오고싶을때(1가지)
>>>Owner.objects.get(name="홍길동")
>>><Owner=홍길동>
>>>Owner.object.get(age=20)
>>><Owner:춘향이>

변수에 넣어서 조회 하기
>>>info = Owner.objects.get(name="홍길동")
>>>info
>>><Owner:홍길동>
>>>info.email
>>>'aaaa@aaaa.com'
>>>info.age
>>>20

쿼리셋을 통한 조회
filter(filter는 get과 달리 여러데이터를 동시 조회 가능)
>>>Owner.objects.filter(age=31)
>>>b =Owner.object.filter(age=31)
>>>b =<QuerySet [<Owner: 구동현>, <Owner: 최상근>, <Owner: 최종우>, <Owner: 임지산>]>

>>> b.name 
>>>에러 발생(get과는 달리 filter는 이런식으로 사용불가)
>>> c =Owner.objects.all()
<QuerySet [<Owner: 구동현>, <Owner: 최상근>, <Owner: 최종우>, <Owner: 임지산>]>
>>> for owner in c:
... 	print(owner.name)
구동현
최상근
최종우 
임지산

>>> Dog.objects.create(name="웅이",breed="푸들",age=5, color="갈색",owner=Owner.objects.get(name="구동현")

>>> hello = Owner.objects.get(name="구동현")
>>> hello
<Owner:구동현>
>>>Dog.objects.create(name="웅이",breed="푸들",age=5, color="갈색" owner= hello>
<dog:웅이>

0개의 댓글