셸 플러스를 이용해 데이터베이스 살펴보기

Posted on 2021-08-25 by GKSRUDTN99
Django로 웹사이트 만들기 장고

셸 플러스를 이용해 데이터베이스 살펴보기

장고 셸 이용하기

python manage.py shell을 이용해 장고 셸을 이용할 수 있다.

>>> from blog.models import Post, Category
>>> Post.objects.count()
출력...
>>> Category.objects.count()
출력...

for문도 활용할 수 있다.

>>> for p in Post.object.all()
>>>     print(p)
출력...
>>> for c in Category.objects.all():
>>>     print(c)
출력...

장고 셸 플러스 이용하기

pip install django_extensionspip install ipython을 통해 설치한다.

settings.py의 INSTALLED_APPSdjango_extensions를 추가한다.

python manage.py shell_plus로 셸 플러스를 실행한다.

셸 플러스는 파이썬 코드에 따라 글자 색상이 다르게 표현되어 가독성이 높아지고,

for문을 사용할 때 자동으로 들여쓰기도 자동으로 맞춰져 편리하다.

또한 Post와 Category 모델들을 임포트 하지 않고 사용 가능하다.

name__startswith을 통해 name이 '장'으로 시작하는 카테고리 레코드를 가져올 수 있다.

In [5]: category_etc = Category.objects.get(slug='기타')

In [6]: category_django = Category.objects.get(name__startswith='장')

In [7]: category_etc
Out[7]: <Category: 기타>

In [8]: category_django
Out[8]: <Category: 장고>

category_etc.post_set으로 category_etc에 저장되어 있는 Category 레코드와 ForeignKey로 연결되어 있는 Post 레코드를 불러올 수 있다.

이때 모델명을 소문자를 쓰고 뒤에 _set을 붙이는 것이 기본 설정이다.

In [10]: for p in category_etc.post_set.all():
    ...:     print(p)
    ...: 
[3]sublimeTextMarkdown설치 :: gksrudtn99

In [11]: for p in category_django.post_set.all():
    ...:     print(p)
    ...: 
[1]장고에 대하여 :: gksrudtn99
[4]모델 추가 :: gksrudtn99
[5]장고 개발환경 설정하기 :: gksrudtn99