일기 대신 코드 슬쩍

[백엔드][장고][Django] Chapter #7 본문

Backend/Django

[백엔드][장고][Django] Chapter #7

코코자 2023. 7. 17. 20:07

#7.0 Introduction

  • 장고는 자동으로 데이터베이스 추상화 API 제공함
  • 객체를 생성하고 찾아오고 갱신하고 삭제할 수 있음
  • vscode 열려있는 탭 모두 닫기
poetry shell
python manage.py shell
  • 터미널에 입력 → 파이썬 콘솔을 실행하는데 django가 들어있음
from rooms.models import Room
  • rooms 모델에 대한 데이터베이스에 접근 할 수 있음
Room.objects.all()
  • 이런 식으로 데이터에 접근 가능
Room.objects.get(name=")
  • 원하는 걸 검색할수도 있음
  • .create, .filter도 있음
  • 데이터 수정할 수도 있음

#7.1 filter, get, create, delete

  • django에서 모델이 만들어지면 manager도 같이 생성
  • all()은 모든 객체를 가져옴
  • get()은 조건에 해당하는 값을 반환, 근데 1개만 가져올 수 있음, 2개이상은 에러
  • 따라서 무언가 특별한 것을 찾을 때 쓰인다.
  • fileter()는 get()과 같은 기능인데 여러개를 다 반환함
  • create로 데이터 생성도 가능
  • delete로 삭제도 가능

#7.2 QuerySets

  • querysets: 연산자를 함께 묶어주는 일
  • querysets를 이용해서 filter를 이중으로 쓸 수 있삼
  • like this~ exlcude는 제외시키는 거임
  • 근데 이건 비효율적인 것임

  • 이렇게 하면 더 간단하다.
  • count도 쓸 수 있다

#7.3 Admin Methods

  • icontains: 대소문자 구분 안 함
  • startwith,endwith,istartwith,iendwith……
  • range,date,year,,,등등
  • 언더바는 포함하다,,보다 작다.등등..

#7.4 ForeignKey Filter

  • reverse accesors : 외래키를 이용해 필터링, ORM에서 핵심
  • reverse는 user가 가리키고 있는 모델을 다 찾기 위함
  • 언더바 두번을 통해, 외래키에 접근할 수 있음

#7.5 Reverse Accessors

  • dir()모든 정보를 알려줌

#7.6 related_name

  • 모델 a가 모델 b에 외래키를 가지고 있을 때 모델 b는 자동으로 모델A_set을 가짐

#7.7 Recap