Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbian 8.0(NOOBS Ver1.9.2)を使用して開発中。

【スポンサーリンク】

Djangoの使い方 (その3)

【スポンサーリンク】

前回までで、Webページにテーブルを表示するところまでできました。あと少しで、models.pyで作成したデータ(データベースのデータ)をWebページのテーブルに表示できるようになります。それではさっそくdjangoシステムから、データベースに値を登録してみましょう。

データベース管理サイトの作成(djtest→webpi→admin.py)

 djangoではデータベースの管理サイトが簡単に作れ、そこからデータベースの値を簡単に操作することができます。admin.pyを下記のように修正していきます。

まず、admin.pyに作成したモデル(PiData)をimportします。データベースの管理サイトに表示したいデータをlist_display変数に格納します。

from django.contrib import admin
from webpi.models import PiData

class PiDataAdmin(admin.ModelAdmin):
    list_display = ('id','pidata1', 'pidata2', 'pidata3', 'pidata4','pidata5',)
admin.site.register(PiData, PiDataAdmin)

データベースの再構築

管理サイトにModelを追加しているので、下記コマンドでデータベースを再構築します。

python3 manage.py makemigrations
python3 manage.py migrate

動作確認

それではデータベース管理サイトを開いてみましょう。djtest→webpi→urls.pyにサイトのURLがデフォルトで設定されており、admin/となっています。ブラウザに下記のアドレスを入力してください。
http://[Raspberry PiのIPアドレス]:8000/admin

IDとパスワードを聞かれますので、createsuperuserで登録したID:admin、パスワード:raspberrypiを入力します。

管理サイトのWeb画面を見ていただけばわかると思いますが、AddボタンしてPidataの値をデータベースに追加することができます。とても簡単にデータベースを操作できるので便利です。適当にPidataのpidata1~5に値を登録して、もう一度、webpiのWebページ(http://[Raspberry PiのIPアドレス]:8000/webpi)を開いてみましょう。

 

テーブルに値が表示されていれば成功です。データベースとWebページが繋がりました。djangoのしくみはとても分かりやすく、簡単なページであればすぐに作れてしまいます。

しかしこれだけではちょっと使い勝手が悪いですね。データベースの値を更新した後、
Webも更新ボタンを押さないと値が更新されません。

次回は、swampdraonというモジュールをdjangoに組み込み、WebSocket通信でWebページの値をリアルタイムで更新する方法を紹介したいと思います。ここまでできると、pythonで取得したセンサー値等をリアルタイムでwebページに表示、また逆にWebからセンサーを操作することもできるようになります。

飛躍的にできることが増えますので、少し難易度が上がりますが、ひきつづき紹介したいと思います。