SQLiteを用いた住所録: address_sqlite
リレーショナルデータベース(RDB)を使った簡単な住所録を作成してみます。最も単純なファイルベース(データベース=1ファイル)であるSQLiteを使って,一通りの操作を行うCRUD(Create, Read, Update, Delete)システムを作ります。
準備
SQLiteがその環境にインストールされていること,そして,SQLiteを使用するためのPythonモジュールである"sqlite"がPython環境にインストールされていることを確認しておいて下さい。入っていないようでしたらインストールしておきましょう。
次に,住所録を作成するフォルダ(ディレクトリ)を作成します。今回は「address」フォルダを作成し,ここに全てのファイルを保存しておくようにします。
データベースを作成する
下記の要領で住所録用のデータベースである「address.db」を作成します。
「address.db」の中にCREATE
文を使って「tbl_address」テーブルを作ります。「id」に「PRIMARY KEY」を設定するの忘れないようにして下さい。これを忘れるとidが重複します。
出来上がった「tbl_address」テーブルが正しいかどうか,SQLite3の.dump
命令で確認します。
DROP
文を使ってテーブルを消去し,もう一度CREATE
文で作成しなおして下さい。
RDBのデータを操作するためには,SQL言語による命令文(SQL文)を通じて行います。詳細はデータベース関連の講義や書籍に譲りますが,ここでは下記の4つの命令,INSERT(データの追加),SELECT(データの検索),UPDATE(データの更新),DELETE(データの削除)のみ,実行例を下記に示します。
以上の4つの命令をフォームから実行し,表示するアプリケーションを作成します。
SQliteを終了するには,.exit
を使います。
作成手順
- 予め3つ以上のデータを「address.db」にINSERTしておいて下さい。例えばSQLite3から としておきます。
- 最初の
address.py
を のように作成し,Flaskから動作させ,ブラウザからデータを表示できていることを確認して下さい。
ここまでできたら,元のaddress.py
を別名で保存しておき,下記のようなaddress.py
を完成させます。上から順に(1)~(5)の順で,必要なテンプレートファイル(templates/template.html
)やブロック定義ファイル(templates/index.html
, templates/detail.html
)も併せてを作って行くようにして下さい。いっぺんに作るとどこが間違っていたか分からずにハマりますので気を付けて下さい。
完成版address.py
完成版templates/template.html
完成版templates/index.htmlとブラウザ表示
完成版templates/detail.htmlとブラウザ表示
練習問題2
- 一度すべてのデータを消去してから,下記のデータを入力し,住所録として使用できることを確認せよ。動作時のスナップショット(「データ更新・削除」「データ表示」「データ追加」)は必ず保存してレポートに説明付きで張り付けておくこと。
ID 名前 よみがな 住所 メモ 1 中曽根康弘 なかそねやすひろ 〒437-8555 静岡県袋井市豊沢2200-2 2 竹下登 たけしたのぼる 〒420-8538 静岡県静岡市葵区相生町12-18 DAIGOの母方の祖父 3 宇野宗佑 うのそうすけ 〒100-0014 東京都千代田区永田町2丁目3-1 短命内閣 - [できそうならチャレンジ!問題] ユーザ側から氏名,よみがな,住所,メモを対象とした検索機能を実現せよ。