SHELL - 직접 DB에 요청을 하는 다른 방법

shell 실행 방법

운영체제에 따라

  • windows - powershell에서
  • unix/linux - 터미널에서
  1. manage.py가 있는 폴더로 이동 후
  2. python manage.py shell

DB에 요청하기

1. 기본 - 사용할 모델 클래스 import

>>> from elections.models import Candidate

2. 모든 객체 불러오기 - all()

>>> Candidate.objects.all()

3. 새 객체 생성하고 저장하기 - Model.save()

>>> new_candidate = Candidate(name = "루비오") #생성만 한 상태. 아직 저장되지 않음
>>> new_candidate.save() #new_candidate가 DB에 저장됨

4. 특정 조건을 만족하는 객체 불러오기 - filter()

>>> no1 = Candidate.objects.filter(party_number = 1) #party_number = 1인 객체를 리스트 형태로 return
>>> no1[0].party_number #리스트 형태이기 때문에 index로 접근
>>> no1[0].name

이번 동영상에서 쓰인 script 전체

>>> from elections.models import Candidate
>>> Candidate.objects.all()
[<Candidate: 힐러리>, <Candidate: 트럼프>]
>>> new_candidate = Candidate(name = "루비오")
>>> Candidate.objects.all() #아직 "루비오"가 DB에 저장되지 않음.
[<Candidate: 힐러리>, <Candidate: 트럼프>]
>>> new_candidate.save() # 이제 "루비오"가 DB에 저장되었습니다
>>> Candidate.objects.all()
[<Candidate: 힐러리>, <Candidate: 트럼프>, <Candidate: 루비오>]
>>> no1 = Candidate.objects.filter(party_number = 1)
>>> no1
[<Candidate: 힐러리>]
>>> no1[0].party_number
1
>>> no1[0].name
'힐러리'
>>> no1[0].introduction
'미국 최초의 여자 대통령이 되겠습니다.'

  • <QuerySet [<Candidate: 힐러리>, <Candidate: 트럼프>, <Candidate: 루비오>]> ??
    김수정
    2017.5.18 14:31
    1
  • 데이터베이스 질문
    python
    2016.5.28 18:21
    3
  • Candidate.objects.filter(party_number=1) --> '힐러리' ??
    제프
    2016.4.22 10:11
    1
  • 장고 shell 에러 확인 요청;
    Jinil Choi
    2016.4.4 07:20
    1