東大ニート

東大卒のニートが勉強したことをメモするブログ

<Django>shell plusを使う

shell_plusを使えば、通常のshellより便利、という話を聞いて使ってみたいなと思いました。shell_plusを使えば、シェルを使う時に、各モデルが自動的にインポートされるので、インポートの手間が省けるということです。
以下を参考に記載しました。

github.com

 

shell と shell_plusとの違い

自動でインポートを行ってくれる、というのは具体的には以下のようなイメージです。

まず、通常のshellを使う場合、下記のようになります。

(practice)$ ./manage.py shell
Python 2.7.10 (default, Sep 23 2015, 04:34:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.72)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

一方、shell_plusを使う場合、下記のようになります。

(practice)$ ./manage.py shell_plus
# Shell Plus Model Imports
from django.contrib.admin.models import LogEntry
from django.contrib.auth.models import Group, Permission, User
from django.contrib.contenttypes.models import ContentType
from django.contrib.sessions.models import Session
# Shell Plus Django Imports
from django.utils import timezone
from django.conf import settings
from django.core.cache import cache
from django.db.models import Avg, Count, F, Max, Min, Sum, Q, Prefetch, Case, When
from django.core.urlresolvers import reverse
from django.db import transaction
Python 2.7.10 (default, Sep 23 2015, 04:34:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.72)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

※モデルを自分で定義している場合、上記に加え、それらのモデルも自動でインストールされます。

インポートを自動で行ってくれるため、手間が省けます。

 

 shell_plusを使うまでの流れ

以下の様な手順で、shell_plusを使えるようになります。

1. django-extensions のインストール

2. INSTALLED_APPSの設定

3. コマンドの実行

1. django-extensions のインストール

まずは、pipまたはeasy_installでdjango-extensionsをインストールします。

$ pip install django-extensions
or
$ easy_install django-extensions

2. INSTALLED_APPSの設定

次にsettings.pyのINSTALLED_APPSに'django_extensions'を設定します。

INSTALLED_APPS = (
...
'django_extensions',
...
)

3. コマンドの実行

1、2の設定を終えるとshell_plusのコマンドを実行できます。

./manage.py shell_plus

 

以上でshell_plusを使うことができます。