장고(Django) 환경의 Jupyter Notebook 실행하기

2019-10-24 • pythondjango, jupyter, notebook • 1 min read

Django로 웹개발을 하다보면 Django의 ORM(Object-relational Mapping)을 자주 사용하게 됩니다. Django의 ORM 관련 문서는 여기를 참고해 주세요.

from django.db import models 모듈의 Model 클래스로 DB를 쉽게 구축할 수 있습니다. 그럼에도 DB 구축 과정에서 테스트성 작업도 필요하게 됩니다. 예를들어, 테스트 데이터를 생성해 보거나, 모델을 이용하여 질의(Query)를 만들어 보거나, 데이터를 수정해 보거나, 테스트로 입력한 데이터들을 삭제하거나 등입니다. 즉, 데이터 CRUD(Create, Retrieve, Update, Delete)를 테스트 해볼일이 많습니다.

Django 설정이 로딩된 상태에서만 모델들을 사용할 수 있습니다. 이들을 테스트하기 위해서 Django View에서 테스트 코드를 작성하고 GET 호출을 하는 번거롭고 비효율적인 방법으로 테스트할 수도 있습니다만, 보다 효과적인 방법을 소개합니다.

1. Django shell

python manage.py shell

이렇게 Django 프로젝트의 설정이 로딩된 쉘을 실행하고, 이 위에서 모델들을 다룰 수 있습니다.

2. django-extensions의 shell_plus

먼저 django-extensions를 설치합니다.

pip install django-extensions

그리고 settings.py에서 INSTALLED_APPS 리스트에 django_extensions를 추가합니다.

INSTALLED_APPS = [
    ...
    'django_extensions',
]

이제 다음과 같이 shell_plus를 실행하면 관련있는 Django 모듈들을 자동으로 임포트해 줍니다.

python manage.py shell_plus

3. django-extensions의 shell_plus + Jupyter Notebook

Django 환경을 Jupyter Notebook(Lab)으로 사용할 수 있습니다.

python manage.py shell_plus --notebook