장고(Django) 환경의 Jupyter Notebook 실행하기
2019-10-24 • python • django, 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