TIL #34 Django - Manager: object

강경훈·2020년 9월 3일
0
post-thumbnail

- Django는 모든 Model class대해 "objects" 라는 Manager (django.db.models.Manager) 객체를 자동으로 추가한다.

- 이 Manager를 통해 특정 data를 필터링, 정렬 등 여러 기능들을 사용할 수 있다.

1. 예제 코드

from django.db import models


class Users(models.Model):
    name         = models.CharField(max_length = 50)
    email        = models.CharField(max_length = 50)
    password     = models.CharField(max_length = 300)
    phon_number  = models.CharField(max_length = 100)

2. 주의 사항

  • Models.py에 만든 class의 이름으로 시작한다.
    => Users.objects.all(), Users.objects.filter() 등

3. Method

  • all() : 테이블 데이타를 전부 가져오기 위한 method
    => Users.objects.all()

  • get() : 하나의 객체만을 가져오기 위한 method
    => row = Users.objects.get(pk=1) : Primary Key (일반적으로 id 컬럼)가 1인 row를, 즉 pk=1인 객체를 가져온다.

row = Users.objects.get(pk=1)
print(row.name)
=>Kyunghun
pk=1인 객체의 name이라는 변수에는 Kyunghun이 있는 것을 확인
  • filter() : 특정 조건에 맞는 객체들을 가져오기 위한 method
    => rows = Users.objects.filter(name='Kim') : name 필드의 값이 'Kim'인 모든 객체들을 가져온다

  • exclude() : 특정 조건을 제외한 나머지 객체들을 가져 오기 위한 method
    => rows = Users.objects.exclude(name='Kim') : name 필들의 값이 'Kim'인 객체를 제외한 모든 객체를 가져온다.

  • count() : 데이타의 갯수(객체의 수)를 세기 위한 method
    => n = Users.objects.all().count() : all()을 같이 썼기 때문에 Users의해 만들어진 모든 객체의 수를 카운트 한다.

  • order_by() : 데이타를 키값에 따라 정렬하기 위한 method(키값 앞에 -가 붙으면 내림차순)
    => rows = Users.objects.order_by('-createData') : createDate로 내림차순으로 정렬.

profile
방랑하는 개발자

0개의 댓글