IoT+WEBのためのホームサーバ計画の実装編9。WebServer側のDB部分の検討。
DBのひとつくらいいれとくとあとあとラク
実は、不要なところにDBを使うのはあんまり好きじゃない。
json1コおいとけば済むところところまでDBにするとか、
画面ひとつにDB1レコード使うとか、、
そういうのは不要だと思うのでやりませんです。
と、言いつつ、DBがあれば便利な場合もあるし。
ということで、便利な場合もあるので、ひとつつけときましょう。
今回はユーザ管理があるので、仕方ない。。入れとくか。。。
って感じです。
DBは何使う?って、SQLite3でよくね?
ということで、まずDBはめんどいインストーラとかいらないSQLite3あたりにしときます。
サーバものはLinuxしますが、日頃はWindowsも多いので、
WindowsでそれらしいGUIのDBのToolのあるもの
を選択しましょう。
ってことで、、
というのを使ってみました。
おーー!普通によくある普通のやつって感じです。
まぁこれを使う機会は最初のちょっとくらいではありますが、
なんとなく一覧が見えると安心するので、、
そして、MDBの如く、ファイルを指定するだけでOKなので、そこらへんが気がラクでよいです。
で、アクセスする方
アクセスするクライアントというか、サーバプログラム側ですが、
まぁこれも別にめんどくないです。
import sqlite3
from contextlib import closing
dbname = 'hiradb.db'
with closing(sqlite3.connect(dbname)) as conn:
c = conn.cursor()
sql = '''select * from finredWeb'''
a = c.execute(sql)
#b = a.fetchone()
b = a.fetchall()
n = len(b)
ns = str(n)
print("n:" + ns)
for w in range(n):
print(b[w])
結果は、、
ということで、何の苦労も無い感じですね(o^^o)
実際にDBで管理するもの
ということで、DB設計らしきものを。
必要なものはというと、、
●ユーザ管理
●HomeServerの管理
● HomeServerとユーザの関係
●その他
くらいですかねー。
【ユーザ管理で必要なもの】
ID、ユーザ名、パスワード(暗号化とかMD5とか)、最終アクセス日付、登録日、とか
【HomeServerの管理で必要なもの】
ID、GlocbalIP、LocalIP、固有ID、固有ID2、 クライアント(IoTコントローラ)情報、最終アクセス日付、登録日、とか
【HomeServerとユーザの関係で必要なもの】
ID、HomeServerID、ユ-ザID、可能機能ID、 最終アクセス日付、登録日、とか
まぁなんとなくこんな感じで。
作りながらやってきましょう。
ホームサーバで何かDB管理しないのかというと、
しません。(o^^o)
正確に言えば、必要性が出てきたらする、、ですかね。^^;