일단 sqlite3.db.sqlite3 으로 가서 데이터베이스를 뒤져본다.
여기서 ;이거를 안치면 계속 진행됨.
>>>.table
>>>select * from drink
-> 드링크에 있는 것들을 떙겨오는것
>>>delete from categories;
-> 삭제
쉘로 가서
>>>python manage.py shell
치면 쉘로 이동함.
>>>from product.models import Category, Drink
>>>Category.objects.create(name='데이터 이름', 외부키_ID=1)
하면 데이터가 카테고리에 추가가 된다. 추가할 때 마다 자동으로 id가 생성됨.
>>>Category.objects.all()
-->치면 오브젝트 다 볼 수 있음.
그리고 더 자세히 보려면
>>>Category.objects.values()
-->하면 디테일하게 나옴.
*카테고리라는 객체들이 리스트 성질로 취급받을 수 있기 때문에 리스트에 쓸 수 있는 함수들을 쓸 수 있음.*
{
예를 들어
category_all=Category.objects_all()
을 하고
category_all[0]
을 하면 0번째의 값이 튀어나옴
그리고
cold = category_all[0]
한다음
cold.name
을 하면 0번째 값의 name이 튀어나옴.
category_values = Category.objects.values()
cold2 = category_values[0]
cold2.name 하면 안뜸.
벨류했을 때는 딕셔너리 형태로 나오기 때문에 딕셔너리 키값을 넣어줘야함.
원하는 테이블의 id가 필요할 때 쓰는 방법
c = Category.objects.get(name='콜드 브루 커피')
c.id
하면 아이디가 튀어나옴.
}
그래서 콜드브루 커피 밑의 모든 커피들은 저거 c.id를 category_id=c.id 로 넣어주면 됨.
>>>Drink.objects.create(name='나이트로 바닐라 크림', menu_id=1, category_id=c.id)
>>>Drink.objects.create(name='제주 비자림 콜드 브루', menu_id=1, category_id=c.id)
{
위 그림에서 9, 10은
여기 테이블의 각자의 id이다.(나이트로 바닐라크림에 부여된 id, 제주 비자림 콜드 브루에 부여된 id)
뒤에 17은
콜드브루의 id.
마지막 1은
큰 카테고리에서 음료부분 아이디이다.
큰카테고리 음료 음식 카드 등등인데 음료가 1번 아이디이고
음료 안에서 콜드브루가 17번의 아이디를 가지고 있는 것이다.
}
다시 아이디를 저장하는 방법으로
category_id = Category.objects.get(name='에스프레소').id
를 하고
category_id
를 하면 에스프레소의 아이디가 출력됨.
>>>Drink.objects.create(name='에스프레소 콘 파나', menu_id= menu_id, category_id = category_id)
Drink.objects.get(id=11)
아이디가 11번인애를 가져오는 것.
Drink.objects.get(id=11).name
하면 이름이 나옴
Drink.objects.filter(category_id=17).values()
하면 결과가 나옴. 가져온 것들을 디테일하게 딕셔너리로 보여줌.
Drink.objects.filter(category_id=17).values('name')
하면 name만 다 보여줌.
겟은 하나
필터는 여러개를 들고올 수 있음. 그래서 쿼리셋을 리턴받아옴. 그래서 리스트 성질 이용하여 인덱스한 후 .name이나 메소드 등을 쓰면 됨.
category_sample = Category.objects.get(name='에스프레소')
한 다음
Drink.objects.create(name='카페 아메리카노', menu_id=1, category=category_sample)
해도 넣어짐
왜 category만 해도 되는지에 대해서 생각해 볼 것.
'Language > Python' 카테고리의 다른 글
[Python]Practice algorithm - Binary Gap (0) | 2020.07.27 |
---|---|
Session-자료구조 Stack & Queue (0) | 2020.05.26 |
Session-TIP-Django 장고 , 개발자에게 좋은 팁 (0) | 2020.05.17 |
TIL - 셀레니움 (Selenium) 기초!! (0) | 2020.05.16 |
TIL-웹 크롤링(Web Crawling) (0) | 2020.05.13 |