Django shellというrails console的な機能でDB操作を行う

データベースのテーブルの中身や動作を確認したい時があります。

Django標準の管理画面機能を使ってもいいし、PostgreSQLを直接叩いてもいいのですが、もっと気軽に確認できたら便利ですよね。

というわけで rails console 的な機能ってないのかな?と思い調べたところ、 Django shell という機能がありましたのでメモします。

Django shell

Django shell とは、djangoプロジェクトの環境を読み込んで、ターミナルからPythonコードを実行できる機能です。

Ruby on Railsにおける rails c と同じようなものですね。DB操作などをコンソールから行い、動作を確認することができます。

Django shellの使い方

Django shellは次のコマンドで起動します。

python manage.py shell

データの作成

試しにユーザーを作ってみます。

from django.contrib.auth.models import User
user = User.objects.create_user('ruby-chan', 'ruby-chan@mogumoguhogehoge.com', 'ruby-chan-password')
user.save()

データの取り出し

作成したユーザーの情報はget()で呼び出せます。

User.objects.get(username='ruby-chan')

データの更新

例えばユーザーのパスワードを変更する場合、次のようにします。

u = User.objects.get(username='ruby-chan')
u.set_password('new password')
u.save()

Django shellを終了する

Ctrl + D または exit() と打つとDjango shellから抜けられます。

まとめ

これでDjangoの動作確認など気軽に行えます。やったね!