前回は、データベースの作り方について学んでいきました。
データベースで作ったデータを簡単に操作するためには、管理画面を使うと簡単です。
ですので、まずは管理画面の使い方について学んでいきましょう。
管理画面とは
管理画面は、データベースの情報などを管理しやすいように、djangoが予め作っているデータ操作画面のことです。
この管理画面を使うことによって、データを簡単に管理することができます。
管理画面ははじめから作られている
ここで、あらためてBookprojectフォルダの中のurls.pyファイルを見てみましょう。
コードurls.py
...
urlpatterns = [
path('admin/', admin.site.urls),
path('book/', include('booklibrary.urls')),
]
urlpatternsの下にpath('admin/', admin.site.urls)というコードがあることが分かります。このコードは、このurls.pyファイルを開いた時にすでに書かれていました。
実は、このadmin.site.urlこそが管理画面のことです。
つまり、localhost:8000/admin/というurlにアクセスすることで、admin.site.urls(管理画面)に行くことができるのです。
実際にアクセスしてみる
実際に管理画面にアクセスしてみましょう。
$ python manage.py runserver
上記のコマンドでサーバーを立ち上げて、localhost:8000/admin/とブラウザに打ちます。
すると、管理画面が表示されます。
ユーザー名とパスワードを求められますが、管理画面用のユーザーはまだ作ってはいません。
実は、djangoではターミナルで管理画面用のユーザーを作ることができます。
ですので、ターミナルで管理画面用のユーザー(superuser)を作っていきましょう。
superuserを作る
管理画面にログインする時に使われるユーザーのことを、djangoではsuperuserと呼びます。
実際にsuperuserを作ってみましょう。
superuserを作るためには、ターミナルでこのようなコマンドを打ちます。
$ python manage.py createsuperuser
このコマンドを打つと、superuserのユーザー名やパスワードが求められますので、入力をしてsuperuserを作ります。
superuserでログイン
無事にsuperuserを作ることができましたので、superuserでログインをしていきます。
ログインをすると、このような画面が表示されました。
GroupsとUserという表示がありますが、これはユーザーなどを管理するために使われます。
ただ、前回の記事で作成したBookModelが見当たりません。
実は、新しくモデルを作成した場合、そのモデルを管理画面に読み込ませないといけないのです。
hello worldの章で、新しくアプリを作った時、settings.py内のinstalled appに追記してアプリを認識させましたが、それと同じようなイメージです。
早速、新しく作ったモデルを管理画面に読み込ませる方法について見ていきましょう。
管理画面にモデルを読み込ませる方法
管理画面にモデルを読み込ませるには、アプリにあるadmin.pyというファイルを使います。
このadmin.pyファイルはアプリを作った時に自動的に作られるファイルです。
早速admin.pyファイルを開き、設定を加えていきましょう。
コードadmin.py
from django.contrib import admin
from .models import BookModel ← new!
admin.site.register(BookModel) ← new!
models.pyファイルからBookModelを読み込み、さらにadmin.site.register(BookModel)でBookModelを管理画面に読み込ませていることが分かります。
このコードを追加した上で、再び管理画面を見てみましょう。
booklibraryアプリの中で、BookModelというデータが作成されていることが分かります。
次に、BookModelに実際にデータを追加してみましょう。
緑のAddボタンを押します。
すると、以下のような画面がでてきます。
Bookname、Summary、Ratingにそれぞれ内容を入力し、右下のSAVEをクリックすることによって、データを保存することができます。
これで、データベースにデータを保存することができました。
作成したデータの削除や編集も管理画面で行うことができます。
複雑なコードは書いていないにも関わらず、こういった沢山の操作ができるのがフレームワークの強みです。
次の記事では、データベースに保存されたデータをhtmlファイルで表示する方法について学んでいきましょう。