Djangoを使ってみる④(Modelの作成~管理画面の使用)
modelの作成
models.pyの編集
test_appフォルダの中にある「models.py」を編集しmodelを作成することでDBのテーブル設計が出来ます。
例えば下記の様なデータ構造を作りたい場合 テーブル名:book_list
本の名前(book_name) | 作者(author) | 出版社(publisher) | 価格(price) |
---|---|---|---|
入門 Python 3 | Bill Lubanovic | オライリージャパン | 4070 |
独習Python | 山田 祥寛 | 翔泳社 | 3300 |
・・・ | ・・・ | ・・・ | ・・・ |
models.pyに下記のように追記します。
from django.db import modelsclass book_list(models.Model):book_name = models.CharField(max_length=200)author = models.CharField(max_length=200)publisher = models.CharField(max_length=200)price = models.CharField(max_length=200)
※field type、field option一覧:Model field reference | Django documentation | Django
マイグレーションファイルの作成
settings.pyを開き、INSTALLED_APPSにアプリケーションを追加します。
makemigrationsコマンドを実行します。
コマンド例:python manage.py makemigrations test_app
そうすると「book_list」というmodelが作成されます。
modelをデータベースに反映
migrateコマンドを実行し、modelをデータベースに反映させます。
コマンド例:python manage.py migrate
これでデータベースにbook_listというテーブルを作成することが出来ました。
modelを確認するため、管理画面を有効化してみます。
管理画面の使用
必須というわけではありませんが、簡単に使用できるので使ってみます。
管理者ユーザーの作成
管理画面を使用するために管理者ユーザー (スーパーユーザー) を作成します。
コマンド:python manage.py createsuperuser
ユーザー名やメールアドレス、パスワードを入力します。
パスワードは8文字以上設定する必要があるので注意が必要です。
admin.pyの編集
管理画面でmodelを見るために、modelを登録する必要があります。
「test_app」フォルダに含まれているadmin.pyを開き、以下のように記述します。
from django.contrib import adminfrom test_app.models import book_list #追加admin.site.register(book_list) #追加
管理画面へログイン
これまで通り
python manage.py runserver 127.0.0.1:8000
でサーバを起動させます。
起動後、ブラウザから
http://127.0.0.1:8000/admin/
へアクセスします。
ログイン画面が出てくるので先ほど設定したユーザー名とパスワードを入力してログインします。
ログインに成功すると下記のような画面が表示されます。
「Book_lists」が表示されているのでmodelの登録は問題なくできているようです。
データ登録
先ほどの「Book_lists」クリックすると下記の様な画面が表示されます。
『「BOOK_LIST」を追加+』をクリックすると下記の様なデータ登録画面が表示されます。
最初の例に挙げた2つのデータを登録してみます。
データが登録されると下記のように「book_list object」というのが2つ生成されます。
各リンクをクリックすると、データの中身を編集することも可能です。