学習目標
前回は、Modelを作成し、データベースへ反映する方法を学習しました。しかし、現在はデータベースへ保存する仕組みだけが完成した状態であり、実際にTodoデータを登録する方法はまだありません。
Djangoには、データを簡単に管理できる管理画面(Adminサイト)が用意されています。まずは管理ユーザーを作成し、そのユーザーで管理画面へログインできるようにします。ただし、この時点では作成したModelはまだ管理画面に表示されません。
そのため、Todoモデルを管理画面へ登録する必要があります。登録が完了すると、ブラウザからTodoデータの追加・編集・削除を行えるようになります。管理画面を利用すると、データベースを直接操作することなくデータを管理できるため、開発や動作確認を効率よく進められます。
管理画面を利用して、ブラウザからTodoデータを登録できるようにします。
Djangoの管理画面とは
Djangoには、最初から管理画面(Admin)が組み込まれています。管理画面では、登録されているModelのデータを管理できます。例えば前回作成したTodoモデルであれば、以下のような項目をブラウザ上で操作することができます。
- Todoの追加
- Todoの編集
- Todoの削除
- 登録されているTodoの一覧表示
通常、このような管理機能を一から開発するには多くの時間が必要ですが、Djangoでは標準機能として提供されているため、すぐに利用できます。
管理ユーザーを作成する
管理画面を利用するには、管理者アカウントが必要です。
管理者アカウントは専属のコマンドが予め用意されています。管理者アカウントの作成コマンドは次のコマンドで作成します。
python manage.py createsuperuser
コマンドを実行すると、ユーザー名・メールアドレス・パスワードを順番に入力します。パスワードは入力しても画面には表示されませんが、正常に入力されています。入力が完了すると、管理ユーザーが作成されます。このユーザーを利用して管理画面へログインします。
管理画面へアクセスする
開発サーバーを起動した状態で、ブラウザから次のURLへアクセスします。
http://localhost:8000/admin
ログイン画面が表示されたら、先ほど作成した管理ユーザーでログインします。初めてログインした時点では、Djangoが標準で用意している認証関連のデータだけが表示されています。まだTodoモデルは表示されていません。これは、管理画面へModelを登録していないためです。
Modelを管理画面へ登録する
Modelを管理画面で操作できるようにするには、admin.pyへ登録します。todoアプリケーションを作成した場合の構成は次のようになります。
project/
├── manage.py
├── config/
│ ├── settings.py
│ └── urls.py
└── todo/
├── migrations/
├── __init__.py
├── admin.py ← このファイルを編集する
├── apps.py
├── models.py ← Todoモデルを定義したファイル
├── tests.py
└── views.py
管理画面への登録は、todo/admin.pyに記述します。例えばTodoモデルは、次のように登録します。
from django.contrib import admin
from .models import Todo
admin.site.register(Todo)
これだけで、Todoモデルが管理画面で操作できるようになります。Djangoでは、このように1行追加するだけで管理画面へ登録できるため、非常に簡単です。登録完了後に開発サーバーを起動します。
python manage.py runserver
admin.pyへ登録すると、管理画面にTodos(またはTodo)が表示されます。
Todoデータを登録する
管理画面では以下のような形で表示されます。登録したTodos(またはTodo)が表示されます。
管理画面
Authentication and Authorization
├── Groups
└── Users
Todo
└── Todos
この項目を開くと、Todo一覧画面が表示されます。さらに「追加」ボタンを押すと、Todoを登録する画面が表示されます。前回作成したField([タイトル] / [内容] / [期限] / [完了フラグ])に対応して、設定した項目を入力できるようになっています。
入力後に保存すると、データベースへTodoが登録されます。プログラムを書かなくてもデータを追加・編集・削除できることが、管理画面の大きな特徴です。
管理画面を利用するメリット
Djangoの管理画面を利用すると、データベースの内容をブラウザから簡単に管理できます。画面上でデータの登録・編集・削除を行えるため、SQLを直接実行する必要はありません。また、動作確認に必要なテストデータを短時間で作成できるので、アプリの開発や確認作業を効率よく進められます。
さらに、一般的な管理機能はDjangoがあらかじめ用意しているため、自分で管理画面を一から開発する必要がありません。その分、アプリ本来の機能開発に集中できることも大きなメリットです。
実際の開発では、動作確認のために管理画面からデータを登録する場面が数多くあります。特に開発初期では、管理画面を利用してテストデータを作成することが一般的です。
管理画面を利用する流れ
管理画面を利用するまでの流れをまとめると、次のようになります。
- Modelを作成する
makemigrationsを実行するmigrateを実行するcreatesuperuserで管理ユーザーを作成する- Modelを
admin.pyへ登録する http://localhost:8000/adminへアクセスする- ブラウザからデータを登録する
ここまでで、データベースへ自由にデータを追加できるようになります。
まとめ
Djangoには、データをブラウザから管理できる標準の管理画面(Admin)が用意されています。まずはcreatesuperuserコマンドを実行して管理ユーザーを作成し、その後、**http://localhost:8000/admin**へアクセスしてログインします。
作成したModelは、そのままでは管理画面に表示されないため、**admin.py**へ登録する必要があります。登録が完了すると、管理画面からデータの追加・編集・削除を簡単に行えるようになります。管理機能を一から開発する必要がないため、効率よくアプリの開発や動作確認を進められることがDjangoの大きな特徴です。
ここまでで、Todoモデルのデータをブラウザから登録できるようになりました。次回は、この登録したTodoデータを取得し、Webページに一覧表示する方法を学習していきます。