Django
[Django] 8. QuerySet API
개발자 뭄뭄
2022. 9. 2. 17:38
반응형
1. ORM
- Object-Relational-Mapping
- Django는 python을 사용하고, DB는 SQL을 사용해. ⇒ 중간에 번역하는 역할 : ORM
- OOP에서 DB를 연동할 때, DB와 OOP간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법.
- Django는 내장 Django ORM을 사용한다.

- SQL을 잘 알지 못해도 객체지향 언어로 DB 조작이 가능하다! ⇒ 생산성 이 좋다! 하지만, ORM만으로 완전한 서비스를 구현하기 어려운 경우가 있다.
2. QuerySet API
$ pip install ipython
$ pip install django-extensions
project/settings.py
에서 installed_apps에 “django_extensions”,
를 추가한다.
$ python
manage.py
shell_plus
# 전체 게시글 다 내놔!
In [1]: Article.objects.all()
Out[1]: <QuerySet []>
- Query : DB에 특별한 Data를 요청을 보내는 것
- QuerySet : 자! 네가 요청한 데이터야! 하고 set의 형태로 응답을 보내준다.
- 순회가능(iterable)
- 필터, 정렬 등 사용가능
- 단일 객체 반환 시에는 모델의 인스턴스로 반환
3. CRUD using QuerySet API
- CREATE
# 1 article = Article() article.title = "제목을 작성" article.content = "내용을 작성" article.save() # save method를 호출해야 DB에 저장된다. # 2 article = Article(title="제목을 작성", content = "내용을 작성") article.save() # 3 Article.object.create(title="제목을 작성". content="내용을 작성")
- READ
# 1 Article.objects.all() # 전체 데이터 조회 # 2 Article.objects.get(pk=1) #pk 처럼 고유성을 보장하는 조회 # 3 Article.objects.filter(content="dj") # 필터에 해당하는 결과에 따른 queryset 을 반환 # 주의 : filter는 조회결과가 없거나 1개여도 QuerySet을 반환한다
- UPDATE
# update의 순서는 조회 -> update -> 저장 # 1. 조회 article = Article.objects.get(pk=1) # 2. update article.title = "수정할 제목" # 3. 저장 article.save()
- DELETE
# delete의 순서는 조회 -> 삭제 # 1. 조회 article = Article.objects.get(pk=1) # 2. 삭제 article.delete()
Uploaded by N2T
반응형