Django ORM 개별 실행 방법
목차
Django ORM 개별 실행
Django를 이용해서 개발하다보면 ORM을 작성할 때, 서버를 실행하지 않고 ORM만 개별적으로 테스트 해보고 싶은 경우가 있습니다. 이럴때 사용할 수 있는 방법에 대해서 이번 포스팅에서 한 번 알아보겠습니다.
Django shell
ORM을 하나씩 CLI환경으로 실행할 수 있도록 기본 명령어가 제공됩니다.
python manage.py shell
다음과 같이 CLI가 실행되고 ORM을 하나씩 테스트 해볼 수 있습니다. ORM 뿐만이 아니라 어떠한 코드도 테스트해볼 수 있습니다. 다만 ORM을 사용할 수 있도록 DB와 연결된 shell이라고 생각하면 됩니다.
일반 파이썬 쉘과 동일하게 control + d
로 종료할 수 있습니다.
- 추가
pip install ipython
ipython
을 설치하면 CLI 사용성이 좀 더 증대됩니다.
Tab
키를 이용해 자동완성에 도움도 주고 한 번 썼던 코드는 투명한 글씨로 힌트를 줍니다.
Django Extensions runscript
shell이 아니라 script를 작성해서 모듈단위로 실행해 볼 수 있도록 하는 방법이 있는데요. django-extensions
에서 제공하는 runscript
명령어를 사용하면 됩니다.
그러려면 우선 django-extensions
를 설치해줍니다.
pip install django-extensions
settings.py
에 django-extensions
를 추가해줍니다.
# settings.py
...
INSTALLED_APPS = [
...
"django_extensions",
]
그다음에 scripts
디렉토리를 생성하여 __init__.py
까지 생성해줍니다. manage.py
와 같은 위치에 만들어 주면 됩니다.
scripts/check_orms.py
라는 이름으로 파일을 만들어봅니다. 이름은 자유롭게 지으면 됩니다.
# check_orms.py
from core.models import Post, Comment
def run():
posts = Post.objects.all()
print(posts.query)
comments = Comment.objects.all()
print(comments.query)
- 실행
python manage.py runscript check_orms
- 결과
마무리
ORM을 shell과 script방식으로 할 수 있는 방법을 알아봤습니다. 개발과 테스트할 때 유용하게 사용하고 있습니다.