본문 바로가기
도서로 공부하는 프로그래밍/코딩 자율학습

[Python] Django 셸(Django shell) 사용 방법

by 열공노년 2025. 6. 24.
반응형

Django 셸(Django shell) 사용 방법

Django 셸(Django shell)은 데이터베이스 모델을 직접 다루거나 테스트 코드를 실행할 때 매우 유용한 도구입니다.
다음은 Django 셸을 실행하고 사용하는 기본적인 방법을 순서대로 안내드립니다.


✅ 1. Django 셸 실행 방법

가상환경이 활성화된 상태에서 아래 명령어를 입력합니다:

python manage.py shell

실행되면 다음과 같이 Python 인터프리터 창이 열립니다:

Python 3.x.x (…)
Type "help", "copyright", "credits" or "license" for more information.
>>>

VisualStudio Code에서 장고셀 실행


✅ 2. Django 모델 불러오기

예를 들어, pybo 앱 안에 Question 모델이 있다고 가정하면 다음과 같이 모델을 불러올 수 있습니다:

from pybo.models import Question

시간 관련 필드를 위해 timezone도 함께 불러옵니다:

from django.utils import timezone

장고 모델과 TimeZone 불러오기


✅ 3. 데이터 생성

q = Question(subject='테스트 제목', content='테스트 내용', create_date=timezone.now())
q.save()


✅ 4. 데이터 조회

모든 데이터를 조회하려면:

Question.objects.all()

특정 조건으로 필터링:

Question.objects.filter(subject='테스트 제목')

하나만 가져오기 (없으면 오류 발생):

Question.objects.get(id=1)


✅ 5. 데이터 수정

q = Question.objects.get(id=1)
q.subject = '수정된 제목'
q.save()

✅ 6. 데이터 삭제

q = Question.objects.get(id=1)
q.delete()

✅ 7. 반복 데이터 입력 예시 (300개 생성)

for i in range(300):
    q = Question(subject=f'테스트 데이터입니다.[{i:03d}]', content='내용 없음', create_date=timezone.now())
    q.save()

✅ 8. Django 셸 종료

입력:

exit()

또는 Ctrl + Z → Enter (Windows 기준)


💡 보너스: shell_plus 추천

django-extensions 패키지를 설치하면 shell_plus라는 더 강력한 셸을 쓸 수 있습니다:

pip install django-extensions

settings.py에 앱 등록:

INSTALLED_APPS = [
    ...
    'django_extensions',
]

그리고 실행:

python manage.py shell_plus

 

shell_plus는 모델을 자동으로 불러옵니다.

 

shell_plus는 shell 명령보다 더 강력합니다. 장고 프로젝트의 모델, 설정된 앱, 외부 패키지 등을 자동으로 불러와 줍니다.
매번 from myapp.models import ... 하지 않아도 됩니다.

shell_plus 사용 화면


 

반응형