djangoでadminからデータを入れてみる
djangoでadminからデータを入れてみる
djangoの素晴らしいところはテーブルを作成すると、テーブルのデータを編集できる管理画面が自動で生成されるところです。この機能がデータの編集や開発を楽にしてくれます。
管理画面のデザインにCSSが利いていない方はこちらを参照ください。
テーブルを作成していない方はこちらを参照ください。
階層
まずは階層を見てみましょう。
adminようの管理画面の設定画面は「admin.py #1」が担っています。
この「admin.py」に作成したテーブルを認識させるために「models.py #2」を登録してあげます。
.
├── app
│ ├── admin.py #1
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ ├── models.py #2
│ ├── __pycache__
│ │ ├── admin.cpython-36.pyc
│ │ ├── __init__.cpython-36.pyc
│ │ ├── models.cpython-36.pyc
│ │ ├── urls.cpython-36.pyc
│ │ └── views.cpython-36.pyc
│ ├── tests.py
│ ├── urls.py
│ └── views.py
スーパーユーザーを作成する
まずは、管理画面にログインできるユーザーである「スーパーユーザー」を作成しましょう。作成するには下のコマンドを実行します。
※まだmigragteをしていない人は先に行「python3.6 manage.py migrate」を実行して下さい。
python3.6 manage.py createsuperuser
ユーザーネーム、メールアドレス、パスワードを聞かれるので任意の値を設定してあげましょう。
モデルを管理画面に登録する
取り込まれるモデル「models.py #2」は下の通りです。
from django.db import models
class Blog(models.Model):
title = models.CharField(blank=False, null=False, max_length=150)
text = models.TextField(blank=True)
created_datetime = models.DateTimeField(auto_now_add=True)
updated_datetime = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
上記のモデルを「admin.py #2」に登録する場合は下の通りです。
from django.contrib import admin
from .models import Blog
admin.site.register(Blog)
管理画面からデータを入力
管理画面にログインするには「http://[IP]:[PORT]/admin/」をブラウザに入力します。下の画面にアクセスできるので先ほど設定した「ユーザー名」と「パスワード」を入力します。
ログインが完了したら下の画面が表示されていると思います。
そうしたら「Blogs」と記載がある行の右の「+追加」をクリックします。
「+追加」をクリックすると下記の画面が表示されていると思います。
ここで任意値を入力して「保存」を押します。
無事に投稿が完了すると下の画面が表示されています。
念の為データベースも確認してみましょう。
MariaDB [app]> select * from app_blog;
+----+-----------------+---------------------------------------------+----------------------------+----------------------------+
| id | title | text | created_datetime | updated_datetime |
+----+-----------------+---------------------------------------------+----------------------------+----------------------------+
| 1 | 今日の昼飯 | 今日はbeautifulsoupを飲みました。 | 2020-04-25 09:56:35.507714 | 2020-04-25 09:56:35.507769 |
+----+-----------------+---------------------------------------------+----------------------------+----------------------------+
1 row in set (0.01 sec)
ディスカッション
コメント一覧
まだ、コメントがありません