Django shell(シェル)とは?基本や操作方法を徹底解説

Django

(最終更新月:2022年3月)

✔このような方へ向けて書かれた記事となります

「Django shellってなに?どんな時に使えるの?」

「Django shellの操作方法が知りたい!」

「初心者なので、具体例もあると助かるんだけど、、、」

✔当記事を通じてお伝えすること

  • Django shell(シェル)とは?Shellを使ってできること
  • shell(シェル)の操作方法について

【著者プロフィール】

profile_icon
【Python・Django歴】10年 x 【営業マン歴】11年
HP作成、社内システムの構築、コンサルティング

当ブログを通じて、下記アプリの作り方、コード等を公開、解説しています

☆日報アプリ「D-Repo」(デモ版)→こちら

※Djangoをベースに作成したアプリです

☆便利ツールアプリ「Tool Station」→こちら

※Django REST frameworkとReactで作成しているアプリです

初期費用ゼロ/月9,800円でWebデザインが学べる

デザインを習得するためには、客観的なフィードバックと改善が不可欠です。

以下の記事ではこんなWebデザインスクールをご紹介しています。

  • 初期費用ゼロで、月々9,800円のみ
  • オンラインで、教材が使い放題
  • コンテストや実務案件にチャレンジして報酬もGETできる

デザナルはトップデザイナーからレビューがもらえる、格安のWebデザインスクールです。

>>デザナルに興味がある方はこちらからどうぞ<<

詳細をまとめた記事もございますので、ぜひご覧ください。

Django shellとは?shell(シェル)を使ってできること

Django shellとは?

Django shell(シェル)とは、ターミナル上でDjangoのモジュールやデータベースとの連携ができる機能になります。

ターミナル上で「python」コマンドにより立ち上がるPythonシェルと似ていますが、通常のPythonシェルですとデータベースとの連携や作成しているDjangoアプリの機能を使うことはできません。

Djangoシェルを使うことでいちいちアプリ上で確認するのではなく、手軽にターミナル上でコードを実行することが可能になります。

Django shellでできること

具体的に、ターミナル上でDjangoアプリの機能が使えるようになると下記のようなことができます。

  1. コマンドを試すことができる
  2. ブラウザ上でアクセスできなくてもシェルからはアクセスできる

コマンドを試すことができる

データベースの操作などで、「ちょっと試してみたい」という事は多々あります。

そんな時にいちいちアプリ内でコードを書くのではなく、ターミナル上で手軽にできるのがDjangoシェルです。

Pythonシェルと同様、エラーもターミナル上で表示されるので、コードに不具合があるときも重宝します。

ブラウザ上でアクセスできなくてもシェルからはできる

ローカル環境では、ブラウザ上にエラーメッセージが出てきてもセキュリティ的な問題はありません

ただ、Web上に公開後、同じ様にエラーの度に詳細がブラウザに表示されるのは問題です。

そのため、公開したアプリではエラーをブラウザで見れなくするのが通常ですが、その分何か不具合があっても原因を突き止めるのが大変です。

そんな時にシェルを使うと短時間でエラーが見つかる場合も多いです。

参考として下記のような場面で重宝します。↓

Djangoシェルを使用することは、初心者の方だけでなく、進めていけば便利さを痛感します。

一度覚えれば操作方法はそんなに難しくありませんので、ここで覚えてしまいましょう。

次章にて具体的な操作方法を解説します。

Shellの操作方法について

Djangoに備わっている「ユーザーモデルクラス」をDjangoシェルから操作していきます。

shell(シェル)を起動する

「manage.py」があるフォルダ内で下記のコマンドを入力して立ち上げます。

python manage.py shell

下記のように表示されればOKです。

Python 3.8.10 (default, Nov 26 2021, 20:14:08) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>

今後は「>>>」にコマンドを入力していきます。

shell(シェル)を終了する

先にshell(シェル)を終了する方法を伝えます。

下記のコマンドを入力すれば完了です。

>>> exit()

「>>>」を入力する必要はありません。

下記より実際にデータを操作していきます。再度shell(シェル)を立ち上げて次へ進みましょう。

データベースのモデルクラスをインポートする

データベースを操作するには、使用するモデルクラスをインポートする必要があります。

今回使用するユーザーモデルクラスは下記の通りでインポートできます。

>>> from django.contrib.auth.models import User

自身で作成したアプリ内のモデルクラスをインポートする方法は下記のように行います。

>>> from nippo.models import NippoModel

アプリ名「nippo」内の「NippoModel」クラスをインポートしました。

実際にユーザークラスを操作していきましょう。

データを取得する

データを一覧で取得する方法はこちらです。

>>> from django.contrib.auth.models import User
>>> qs = User.objects.all()

変数「qs」には、ユーザーオブジェクトの一覧が保存されています。

「特定のデータだけ取り出したい」場合などは下記の記事で詳しくモデルクラスのメソッドについて解説してますので参考にして下さい。

データを新規追加する

新たにユーザーを新規登録していきます。

ステップ1:オブジェクトを作成します

>>> new_user = User(username="yulikepython", email="admin@itc.tokyo")

ステップ2:パスワードを設定します

>>> new_user.set_password("new-password")

set_passwordメソッドはユーザーモデルクラス特有のものになります。

ステップ3:データベースへ書き込み、保存します

new_user.save()

データを更新・編集する

ステップ1:編集するデータを取得します

>>> editting_user = User.objects.get(username="yulikepython")

ステップ2:編集します

>>> editting_user.email="yulikepython@gmail.com"

「オブジェクト.フィールド名」で各フィールドにアクセスができます。

ステップ3:データベースへ書き込み、保存します

>>> editting_user.save()

データを削除する

データを削除する場合も上記同様、対象のデータを取得する必要があります。

>>> deleting_user = User.objects.get(username="yulikepython")

削除を実行します

>>> deleting_user.delete()
(1, {'auth.User': 1})

まとめ

当記事の内容をまとめます。

Django shell(シェル)とは、通常のPythonシェルとは違い、ターミナル上でDjangoのモジュールやデータベースとの連携ができる機能になります。

Django shell(シェル)を使用することで、作成したアプリ内のコードを試すことや、デプロイ後のエラーを発見することができます。

また、操作方法についても解説してきました。

解説した操作は下記の通りです。

  1. shell(シェル)を起動する
  2. shell(シェル)を終了する
  3. モデルクラスをインポートする
  4. データを取得する
  5. データを新規追加する
  6. データを更新・編集する
  7. データを削除する

「これってなんだっけ?」というのがあれば、是非前の章に戻って再度確認してみましょう。

当記事をご覧の方の中にも「そろそろウェブでアプリを公開してみたいなぁ」「どうやって公開するの?」という方もいらっしゃるのではないでしょうか?
下記の通り、別記事ではDjangoアプリの公開方法公開までの準備についての解説をしていますのでご覧ください!

「Webアプリを公開したい!」という方へ

【保存版】Apache WebサーバーでDjangoアプリを公開
Djangoが公開できる月500円~のレンタルサーバー
【初心者向け】ムームードメインで独自ドメインを取得する3ステップ
固定IPアドレスのみ単独で契約できる「インターリンク マイIP」Ubuntuコンピューターに固定IPを付与する方法

当ブログでは、日報アプリ開発を通じて、Webアプリを一から開発し公開するまでを初学者の方でもわかるようにと記事を連載しています

「Djangoでのアプリ開発を学びたい!」
「Djangoで開発したアプリをWebで公開するにはどうするの?」

という方は必見です!

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!
タイトルとURLをコピーしました