Django 실습 #2

chaerin·2021년 1월 26일
0

Django

목록 보기
3/4

장고 쉘(shell)을 사용하여 Data를 생성(create)/조회(read)/업데이트(update)/삭제(delete)하는 방법을 알아보자.

메인위치에서 ./manage.py shell 를 입력하면 아래와 같이 나온다.

(InteractiveConsole)
>>>

장고 인터랙티브 콘솔(interactive console)로 들어온 것이다. 파이썬 프롬프트와 비슷하며, 파이썬의 모든 명령어를 사용할 수 있다.

객체 조회하기

>>> from products.models import Menu

Menu모델을 products.models에서 불러온다. 그런 다음 아래의 명령어로 모든 목록을 불러올 수 있다.

>>> >>> Menu.objects.all()
<QuerySet []>

아무 데이터도 들어있지 않은 빈 상태이기 때문에 위와 같은 결과를 얻었다. 이제 데이터를 생성해주자.

C (create)

>>> Menu.objects.create(name='음료')
<Menu: Menu object (1)>

모델명.objects.create(생성할 내용)의 명령어를 사용하면 객체가 생성된다.

제대로 작동했는지 확인해보면 아래와 같이 Menu에 객체가 하나 생성되었음을 알 수 있다.

>>> Menu.objects.all()
<QuerySet [<Menu: Menu object (1)>]>

R (read)

>>> Category.objects.create(name='콜드 브루', menu_id=1)
<Category: Category object (1)>
>>> Category.objects.create(name='브루드 커피', menu_id=1)
<Category: Category object (2)>

category 모델에 위와 같이 두 객체를 생성하고 원하는 객체를 불러오는 작업을 해볼 것이다.

get 명령어나 filter 명령어를 쓸 수 있는데
🔆 get명령어는 하나의 객체만을 불러올 수 있고 filter 명령어는 조건에 해당하는 모든 객체를 불러온다.

✔️ get 사용

>>> Category.objects.get(id=1)
<Category: Category object (1)>

✔️ filter 명령어 사용

>>> Category.objects.filter(menu_id=1)
<QuerySet [<Category: Category object (1)>, <Category: Category object (2)>]>

객체가 여러개 출력되는 filter는 쿼리셋 형태로 결과가 출력된다.

U (update)

객체 값을 바꾸는 update 명령어를 사용해 보자.

위에서 사용한 filter를 사용해 변경하고자 하는 객체를 가지고 와서 update 해준다.

>>> Category.objects.get(id=1).name
'콜드 브루'

>>> Category.objects.filter(id=1).update(name='병음료')
1

>>> Category.objects.get(id=1).name
'병음료'

Category 테이블에서 id=1인 객체의 이름을 바꾸는 작업이다.

콜드 브루 --> 병음료

D (delete)

update와 마찬가지로 filter를 사용해서 삭제할려는 객체를 가지고 온 뒤 delete 해준다.

>>> Category.objects.filter(id=1).delete()
(1, {'products.Category': 1})

>>> Category.objects.all()
<QuerySet [<Category: Category object (2)>]>

id = 1 인 객체를 불러온 뒤 삭제한 뒤 카테고리에 테이블에 있는 객체를 확인해 보면 두 개 였던 객체가 하나로 줄어든 것을 확인할 수 있다.

0개의 댓글