Django - C. R. U. D (2)

Dalbi·2021년 4월 1일
0
post-thumbnail
post-custom-banner

작성하기

manage.py가 있는 경로에서 아래 명령어를 입력하자.

python manage.py shell

그러면 Django를 포함한 shell로 들어올 수 있다.

from '앱이름'.models import '테이블명'

위의 명령어를 통해 만들었던 테이블들을 호출 할 수 있다. (테이블명 대신 *을 입력함으로서 models 전체를 불러올 수 있다.) 여기서 새로운 데이터를 database에 입력할 수 있다.

'테이블명'.objects.메소드()

주로 사용하는 메소드들을 알아보자.

  • .create('필드명'='값')

새로운 값을 입력한다. 만약 null=True가 아닌 값을 비워두면 에러가 출력된다.

  • .get(조건)

지정된 조회 매개 변수와 일치하는 인스턴스를 반환합니다.이 매개 변수는 필드 조회에 설명 된 형식이어야합니다.

  • .update('필드면'=값)

지정된 필드에 대해 업데이트를 수행하고 수행한 행 수를 반환한다.

  • delete()

QuerySet의 모든 행에 대해 SQL 삭제 쿼리를 수행하고 삭제 된 개체 수와 개체 유형별 삭제 횟수가 있는 dictionary를 반환합니다.

  • save()

아래 예시를 보자.

In  : category = Category.objects.get(id=2)
Out : <Category: Category object (2)>

In  : category.name
Out : '브루드커피'

In  : category.name = 'new name'
In  : category.save()

In  : category.name
Out : 'new name'

이처럼 단일 개체에 대해 업데이트 할 때 주로 사용한다.

  • exists(조건)

filter()와 함께 서용해서 filter 조건에 맞는 데이터가 있는지 조회, 존재하면 True 존재하지 않으면 False를 반환한다.

  • all()

해당 테이블의 전체를 QuerySet으로 반환한다.

  • filter() & exclude()

아래 예시를 보자.

case1
In  : Category.objects.filter(name='브루드커피')
Out : [<Category: Category object (3)>, <Category: Category object (4)>]

case2
In  : Category.objects.filter(name='브루드커피').filter(id=3)
Out : [<Category: Category object (3)>]

case3
In  : Category.objects.filter(name='브루드커피').exclude(id=3)
Out : [<Category: Category object (4)>]

filter()를 통해 특정 레코드를 가져올 수 있고 exclude()를 통해 예외시킬 수 있다.

profile
백엔드..?
post-custom-banner

0개의 댓글