Day 8 Django for KN

김의석 ·2024년 2월 14일

Django

목록 보기
8/39

Django for KN(Koinonia)

  • 해당 문서는 사귐의 교회 청소년부 출석부 프로젝트를 위한 Django 학습 내용과 개발 과정을 기록함

Default Manager ModelCls.Obejects()

ModelCls.Obejects().all 
# SELCET * FROM app_model;

ModelCls.Obejects().all.order_by('-id')[:10] 
# SELCET * FROM app_model ORDER BY id DESC LIMIT 10;

ModelCls.Obejects().all.create(title="new title")
# INSERT INTO app_model (title) VALUES ("New Title");

QuerySet

  • SQL 생성 인터페이스, 순회 가능(for문 사용)
    • Model Manager(ModelCls.Obejects())를 통해, 해당 Model에 대한 QuerySet 획득
# Chaining

Post.objects.all().filter().exclude().filter()
  • Chaining 지원
import django.db.models.Q
QuerySet = Post.objects().all()

# 다양한 조회요청 방법

Post.objects.all().filter()
Post.objects.all().exclude()

# 특정 모델 객체 1개 획득

Post.objects.all().get(number index)
Post.objects.all().first(number index)
Post.objects.all().last(number index)

* Qs = Post.objects.all()
  * qs.get(pk=1) -> Post:첫번 째 메세지
  * qs[4] -> Post:네번 째 메세지
  * Qs.get(id__lte=2) # lte : less than equal 작거나 같다

# Q를 이용한 OR조건 추가

* from django.db.models import Q
  *     ...: qs = Post.objects.all()
  *     ...: cond = Q(id__get=2) | Q(message__icontains=query)
  *     ...: qs = qs.filter(cond)
  *     ...: print(qs.query) # query : sql문으로 변환하는 코드
  • 조회
    • 다양한 조회요청 방법
    • 특정 모델 객체 1개 획득
    • OR 조건 사용 시 django.db.models.Q 활용
profile
널리 이롭게

0개의 댓글