Django models.py에서 모델링한 테이블에 Queryset을 이용해 데이터를 추가해 보았다.
westarbucks라는 프로젝트에 products라는 앱을 만든 후에 models.py에 간단한 테이블을 만들었다.
알러지,드링크는 다대다 manytomany 관계이기 때문에 별도로 중간테이블을 만들었다. 밑에는 데이터베이스에 Queryset을 이용해 값을 넣어놓은 상태이다.
중복테이블을 제외한 테이블들에 값을 넣어준 후에 중복테이블에 아이디값을 추가해 주었다.
중복테이블은 서로 같은 연관되있는 값에 아이디값을 참조하여 만들어주었다.
핵심만 말하자면, 쿼리셋(QuerySet)은 전달받은 모델의 객체 목록입니다. 쿼리셋은 데이터베이스로부터 데이터를 읽고, 필터를 걸거나 정렬을 할 수 있습니다.
장고 쉘을 이용해 Queryset을 사용할 수 있다.
위에 있는 사진이 쉘 화면이다 일반 쉘 화면이랑 다른에 이유는 ipython을 사용했기 때문이다. ipython을 사용하는 이유는 쉘을 사용해 테이블에 정보를 넣을경우에 원래는 내가 정보를 넣고싶은 테이블을 임포트 해주어야한다. 테이블이 한두개라면 상관이 없지만 몇십 몇백개가 되면 전부 임포트 하기 힘들거다. 그래서 ipython을 이용하면 모든 테이블들을 자동으로 임포트해주어 매우 효율적이다. ipython 사용법은 매우 간단하다.
pip install django-extensions ipython을 설치해준후에
settings.py에 있는 INSTALLED_APPS에 'django_extensions'을
추가해주면 된다.
이제 진짜 Queryset명령어를 알아보도록 하자
모델명.objects.all() 을 사용해 내가 지정한 모델에 있는 모든 객체를 보여준다.
create를 이용해 메뉴라는 테이블에 이벤트라는 값을 넣어주었다.
보면 이벤트라는 값이 새로 생긴것을 볼 수 있다.
그 밖에도 많은 명령어들이 있다. delete, filter, get등 많은 명령어들이 있다. 모든 명령어는 모델이름.objects.Method 이렇게 사용한다. 데이터베이스에 직접 접근할 수 있는 방법이 Queryset인 만큼 많이 다뤄보고 사용해 봐야겠다.