django shell機能1:1:mM:nについて
2702 ワード
1. 1:1
2. many to 1
3. many to many
1.1列の作成
1. 자동저장
create() 메소드를 이용하여 메뉴라는 테이블에 음료 컬럼 추가
>>> Menu.objects.create(name="음료")
create() 메소드를 이용하여 메뉴라는 테이블에 푸드 컬럼 추가
>>> Menu.objects.create(name="푸드")
2. 수동 저장( 1:m 할 때 사용 )
카드 메뉴 생성 save()메소드 이용
>>> a3 = Menu(name="상품")
>>> a3.save()
>>> a4 = Menu(name="카드")
>>> a4.save()
3. 배열을 이용하여 동시에 여러개의 컬럼을 추가 하는 방법
>>> a1 = Menu(name="음료")
>>> a2 = Menu(name="푸드")
>>> Menu.objects.bulk_create([a1, a2])
mysql-server에서 확인
>>> SELECT * FROM menus;
1.2列確認
get = 하나의 컬럼만 보여준다
get 메소드를 사용하여 Menu 테이블에 이름이 음료인것을 보여줘라
>>> Menu.objects.get(name="음료")
get 메소드를 사용하여 Menu 테이블에 고유한 id 값이 1번인 것을 보여줘라여줘라
>>> Menu.objects.get(id=1)
2.1多対一方式
외래키를 사용하여 다른 테이블을 참조할때 방식은 좀 다르다
먼저 해당하는 메뉴를 READ 한 뒤, 카테고리 생성 시 menu 에 지정해준다.
>>> a1 = Menu.objects.get(name="음료")
>>> Category.objects.create(name="콜드 브루 커피", menu=a1)
방금 콜드브루 커피가 메뉴 테이블을 참조하는것을 확인
>>> b1 = Category.objects.get(name="콜드 브루 커피")
>>> b1.menu.id
>>> a1 = Menu.objects.get(name="음료")
>>> Category.objects.create(name="블렌디드", menu=a1)
>>> a2 = Menu.objects.get(name="푸드")
>>> Category.objects.bulk_create([Category(name="브레드", menu=a2), Category(name="케이크", menu=a2)])
3.1多様な方式
1. 카테고리 테이블 전부 출력
>>> Category.objects.all()
2. 카테고리에서 음료메뉴의 테이블을 참조하고 있는 데이터만 추출
>>> Category.objects.filter(menu_id=1)
OR
>>> Category.objects.filter(menu__name="음료")
Category 데이터 중 푸드 Menu 를 참조하고 있는 데이터만 출력 | filter() 메소드 사용
>>> Category.objects.filter(menu_id=2)
OR
>>> Category.objects.filter(menu__name="푸드")
푸드 Menu 를 참조하고 있는 모든 데이터들의 name 값을 출력 | filter(), for 문 사용
>>> for category in Category.objects.filter(menu__name="푸드"):
print(category.name)
음료 메뉴를 참조하고 있는 모든 카테고리 출력 (QuerySet 의 형태로)
>>> a1 = Menu.objects.get(name="음료")
>>> a1.category_set.all()
음료 메뉴를 참조하고 있는 모든 카테고리 개수 출력 | count() 메소드 사용
>>> a1 = Menu.objects.get(name="음료")
>>> a1.category_set.count()
블렌디드 카테고리가 참조하고 있는 메뉴의 name 값을 출력
>>> c2 = Category.objects.get(name="블렌디드")
>>> c2.menu.name
Reference
この問題について(django shell機能1:1:mM:nについて), 我々は、より多くの情報をここで見つけました
https://velog.io/@hong_tae/django-shell기능-알아보기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
3. many to many
1.1列の作成
1. 자동저장
create() 메소드를 이용하여 메뉴라는 테이블에 음료 컬럼 추가
>>> Menu.objects.create(name="음료")
create() 메소드를 이용하여 메뉴라는 테이블에 푸드 컬럼 추가
>>> Menu.objects.create(name="푸드")
2. 수동 저장( 1:m 할 때 사용 )
카드 메뉴 생성 save()메소드 이용
>>> a3 = Menu(name="상품")
>>> a3.save()
>>> a4 = Menu(name="카드")
>>> a4.save()
3. 배열을 이용하여 동시에 여러개의 컬럼을 추가 하는 방법
>>> a1 = Menu(name="음료")
>>> a2 = Menu(name="푸드")
>>> Menu.objects.bulk_create([a1, a2])
mysql-server에서 확인
>>> SELECT * FROM menus;
1.2列確認
get = 하나의 컬럼만 보여준다
get 메소드를 사용하여 Menu 테이블에 이름이 음료인것을 보여줘라
>>> Menu.objects.get(name="음료")
get 메소드를 사용하여 Menu 테이블에 고유한 id 값이 1번인 것을 보여줘라여줘라
>>> Menu.objects.get(id=1)
2.1多対一方式
외래키를 사용하여 다른 테이블을 참조할때 방식은 좀 다르다
먼저 해당하는 메뉴를 READ 한 뒤, 카테고리 생성 시 menu 에 지정해준다.
>>> a1 = Menu.objects.get(name="음료")
>>> Category.objects.create(name="콜드 브루 커피", menu=a1)
방금 콜드브루 커피가 메뉴 테이블을 참조하는것을 확인
>>> b1 = Category.objects.get(name="콜드 브루 커피")
>>> b1.menu.id
>>> a1 = Menu.objects.get(name="음료")
>>> Category.objects.create(name="블렌디드", menu=a1)
>>> a2 = Menu.objects.get(name="푸드")
>>> Category.objects.bulk_create([Category(name="브레드", menu=a2), Category(name="케이크", menu=a2)])
3.1多様な方式
1. 카테고리 테이블 전부 출력
>>> Category.objects.all()
2. 카테고리에서 음료메뉴의 테이블을 참조하고 있는 데이터만 추출
>>> Category.objects.filter(menu_id=1)
OR
>>> Category.objects.filter(menu__name="음료")
Category 데이터 중 푸드 Menu 를 참조하고 있는 데이터만 출력 | filter() 메소드 사용
>>> Category.objects.filter(menu_id=2)
OR
>>> Category.objects.filter(menu__name="푸드")
푸드 Menu 를 참조하고 있는 모든 데이터들의 name 값을 출력 | filter(), for 문 사용
>>> for category in Category.objects.filter(menu__name="푸드"):
print(category.name)
음료 메뉴를 참조하고 있는 모든 카테고리 출력 (QuerySet 의 형태로)
>>> a1 = Menu.objects.get(name="음료")
>>> a1.category_set.all()
음료 메뉴를 참조하고 있는 모든 카테고리 개수 출력 | count() 메소드 사용
>>> a1 = Menu.objects.get(name="음료")
>>> a1.category_set.count()
블렌디드 카테고리가 참조하고 있는 메뉴의 name 값을 출력
>>> c2 = Category.objects.get(name="블렌디드")
>>> c2.menu.name
Reference
この問題について(django shell機能1:1:mM:nについて), 我々は、より多くの情報をここで見つけました
https://velog.io/@hong_tae/django-shell기능-알아보기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
1. 자동저장
create() 메소드를 이용하여 메뉴라는 테이블에 음료 컬럼 추가
>>> Menu.objects.create(name="음료")
create() 메소드를 이용하여 메뉴라는 테이블에 푸드 컬럼 추가
>>> Menu.objects.create(name="푸드")
2. 수동 저장( 1:m 할 때 사용 )
카드 메뉴 생성 save()메소드 이용
>>> a3 = Menu(name="상품")
>>> a3.save()
>>> a4 = Menu(name="카드")
>>> a4.save()
3. 배열을 이용하여 동시에 여러개의 컬럼을 추가 하는 방법
>>> a1 = Menu(name="음료")
>>> a2 = Menu(name="푸드")
>>> Menu.objects.bulk_create([a1, a2])
mysql-server에서 확인
>>> SELECT * FROM menus;
get = 하나의 컬럼만 보여준다
get 메소드를 사용하여 Menu 테이블에 이름이 음료인것을 보여줘라
>>> Menu.objects.get(name="음료")
get 메소드를 사용하여 Menu 테이블에 고유한 id 값이 1번인 것을 보여줘라여줘라
>>> Menu.objects.get(id=1)
외래키를 사용하여 다른 테이블을 참조할때 방식은 좀 다르다
먼저 해당하는 메뉴를 READ 한 뒤, 카테고리 생성 시 menu 에 지정해준다.
>>> a1 = Menu.objects.get(name="음료")
>>> Category.objects.create(name="콜드 브루 커피", menu=a1)
방금 콜드브루 커피가 메뉴 테이블을 참조하는것을 확인
>>> b1 = Category.objects.get(name="콜드 브루 커피")
>>> b1.menu.id
>>> a1 = Menu.objects.get(name="음료")
>>> Category.objects.create(name="블렌디드", menu=a1)
>>> a2 = Menu.objects.get(name="푸드")
>>> Category.objects.bulk_create([Category(name="브레드", menu=a2), Category(name="케이크", menu=a2)])
1. 카테고리 테이블 전부 출력
>>> Category.objects.all()
2. 카테고리에서 음료메뉴의 테이블을 참조하고 있는 데이터만 추출
>>> Category.objects.filter(menu_id=1)
OR
>>> Category.objects.filter(menu__name="음료")
Category 데이터 중 푸드 Menu 를 참조하고 있는 데이터만 출력 | filter() 메소드 사용
>>> Category.objects.filter(menu_id=2)
OR
>>> Category.objects.filter(menu__name="푸드")
푸드 Menu 를 참조하고 있는 모든 데이터들의 name 값을 출력 | filter(), for 문 사용
>>> for category in Category.objects.filter(menu__name="푸드"):
print(category.name)
음료 메뉴를 참조하고 있는 모든 카테고리 출력 (QuerySet 의 형태로)
>>> a1 = Menu.objects.get(name="음료")
>>> a1.category_set.all()
음료 메뉴를 참조하고 있는 모든 카테고리 개수 출력 | count() 메소드 사용
>>> a1 = Menu.objects.get(name="음료")
>>> a1.category_set.count()
블렌디드 카테고리가 참조하고 있는 메뉴의 name 값을 출력
>>> c2 = Category.objects.get(name="블렌디드")
>>> c2.menu.name
Reference
この問題について(django shell機能1:1:mM:nについて), 我々は、より多くの情報をここで見つけました https://velog.io/@hong_tae/django-shell기능-알아보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol