Django shellメソッドの比較
all() vs values()
allとvaluesは、テーブル内のデータを読み出す方法です.
◧allは、テーブル内のすべてのレコードを取得できます.結果値querysetを返します.
クエリー・セットには、各インスタンスが含まれます.
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)...']>
値は、インスタンスではなく辞書を含むクエリー・セットを返します.入力データのすべての値が出てきました.
>>> Drink.objects.values()
<QuerySet [{'id': 1, 'category_id': 1, 'korean_name': '나이트로 콜드 브루', 'english_name': 'Nitro Cold Brew',
'description': '나이트로 정통 커피의 캐스케이딩과 부드러운 콜드 크레!'}, {'id': 2, 'category_id': 1, 'korean_name': '나이트로 바닐라 크림', 'english_name': 'Nitro Vanilla Cream',
'description': '부드러운 목넘김의 나이트로 커피와 바닐라 크림의 매력을 한번에 느껴보세요!'}, {'id': 3, 'category_id': 1, 'korean_name': '돌체 콜드 브루',
'english_name': 'Dolce Cold Brew', 'description': '무더운 여름철, 동남아 휴가지에서 즐기는 커피를 떠오르게 하는 스타벅스 음료의 베스트x베스트 조합인 돌체 콜드 브루를 만나보세요!'}, {'id': 4, 'category_id': 1, 'korean_name': '바닐라 크림
콜드 브루', 'english_name': 'Vanilla Cream Cold Brew', 'description': '콜드 브루에 더해진 바닐라 크림으로 깔끔하면서 달콤한 콜드 브루를 새롭게 즐길 수 있는 음료입니다.'}, {'id': 5, 'category_id': 2, 'korean_name': '아이스 커피',
'english_name': 'Iced Coffee', 'description': '깔끔하고 상큼함이 특징인 시원한 아이스 커피'}, {'id': 6, 'category_id': 2, 'korean_name': '오늘의 커
피', 'english_name': 'Brewed Coffee', 'description': '신선하게 브루드(Brewed)되어 원두의 다양함이 살아있는 커피'}, {'id': 7, 'category_id': 3,
'korean_name': '더블 에스프레소 크림 라떼', 'english_name': 'Double Espresso Cream Latte', 'description': '달콤한 바닐라와 부드러운 풍미의 블론드 에스프레소!'}, {'id': 8, 'category_id': 3, 'korean_name': '아이스 더블 에
스프레소 크림 라떼', 'english_name': 'Iced Double Espresso Cream Latte', 'description': '달콤한 바닐라와 부드러운 풍미의 블론드 에스프레소!'}, {'id': 9,
'category_id': 3, 'korean_name': '에스프레소 콘 파나', 'english_name': 'Espresso Con Panna', 'description': '에스프레소 샷에 풍부한 휘핑크림을 얹은 강렬하고 달콤한 음료'}, {'id': 10, 'category_id': 3, 'korean_name': '에스프레소 마키아또', 'english_name': 'Espresso Macchiato', 'description': '강렬한 에스프레소 위에 소량의 우유 거품이 얹어진 음료'}, {'id': 11,
'category_id': 3, 'korean_name': '스타벅스 돌체 라떼', 'english_name': 'Starbucks Dolce Latte', 'description': '깊은 에스프레소와 깔끔한 무지방 우유가 어우러진 달콤한 음료'}, {'id': 12, 'category_id': 4, 'korean_name': '더블 에스프레소 칩 프라푸치노', 'english_name': 'Double Espresso Chip
Frappuccino', 'description': '리스트레토 에스프레소 2샷과 에스프레소 칩, 하프앤하프가 달고 진하게 어우러진 커피의 기본에 충실한 더블 에스프레소 칩 프라푸치노를 만나보세요.'}, {'id': 13, 'category_id': 4, 'korean_name': '자바칩 프라푸치노', 'english_name': 'Java Chip Frappuccino', 'description': '커피 프라푸치노에 초콜릿,초콜릿 칩이 첨가된 아이스 블렌드로 달콤 아삭한 음료입니다.'}, {'id': 14, 'category_id': 5, 'korean_name': '자몽 셔벗 블렌디드', 'english_name': 'Grapefruit Sherbut Blended', 'description': '상큼함으로 끝까지 시원한 자몽 셔벗 블렌디드!'}, {'id': 15, 'category_id': 5, 'korean_name': '망고 바나나 블렌디드', 'english_name': 'Mango Banana Blended', 'description': '인기 음료인 망고 패션후르츠 블렌디드에 신선한 바나나 1개가 통째로 들어간 달콤한 프라푸치노'}, {'id': 16, 'category_id': 6, 'korean_name': '핑크 자몽 피지오',
'english_name': 'Pink Grapefruit Starbucks Fizzio', 'description': '신선하게 착즙한 자몽이 스타벅스 만의 수제 탄산음료로 선보입니다.'}, {'id': 17,
'category_id': 6, 'korean_name': '쿨 라임 피지오', 'english_name': 'Cool Lime Starbucks Fizzio', 'description': '그린 빈 추출액이 들어간 라임 베이스에 건조된 라임 슬라이스를 넣고 스파클링한 시원하고 청량감 있는 음료입니다.'},
{'id': 18, 'category_id': 7, 'korean_name': '라임 패션 티', 'english_name': 'Lime Passion Tea', 'description': '새콤달콤한 히비스커스와 라임의 이국적인 조화가 매력적인 라임 패션 티를 만나보세요!'}, {'id': 19, 'category_id': 7, 'korean_name': '민트 블렌드 티', 'english_name':
'Mint Blend Brewed Tea', 'description': '스피어민트, 페퍼민트,레몬버베나가 블렌딩된 상쾌한 허브티 입니다.'}, {'id': 20, 'category_id': 8,
'korean_name': '시그니처 핫 초콜릿', 'english_name': 'Signature Hot
Chocolate', 'description': '유럽 스타일의 진한 핫 초콜릿으로 휘핑크림과 코코아 파우더가 토핑된 음료.'}, '...(remaining elements truncated)...']>
get() vs filter()
上記のall、valuesと同様に、テーブル内のデータを読み出す方法です.
取得()はオブジェクトを返します.
>>> Category.objects.get(id=1)
<Category: Category object (1)>
フィルタ()を使用すると、複数のデータをインポートしてクエリー・セットに戻ることができます.>>> Category.objects.filter(menu_id=1)
<QuerySet [<Category: Category object (1)>, <Category: Category object (2)>,
<Category: Category object (3)>, <Category: Category object (4)>,
<Category: Category object (5)>, <Category: Category object (6)>,
<Category: Category object (7)>, <Category: Category object (8)>,
<Category: Category object (9)>]>
create() vs save()
どちらもデータを入れるときに使う方法です.
「作成」(Create)()は、テーブルにデータを追加する方法で、生成されたインスタンスを返します.
これは非常に簡単なデータ生成方法です.
>>> Category.objects.create(name='프라푸치노', menu_id=1)
<Category: Category object (1)>
逆にsave()はcreateよりやや複雑です.データを生成するには、変数を作成して保存する必要があります.
save()はinsertまたはupdateを実行する方法で、主に単一のオブジェクトを変更するために使用されます.
>>> i= Category(name='프라푸치노', menu_id=1)
>>> i
<Category: Category object (None)>
>>> i.save()
>>> i
<Category: Category object (2)>
Reference
この問題について(Django shellメソッドの比較), 我々は、より多くの情報をここで見つけました https://velog.io/@hyeyoonc/Django-shell-method비교テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol