FlaskでSQLite3を使用する

前回まで作成した商品データベースページにて、商品情報をディクショナリの配列から読み込んでいましたが、今回はSQLite3から読み込むように作成していきます。

 


(1)create_db.py

以前、SQLite3について触れたときに作成したソースを使用します。商品情報を5件登録しています。

 


(2)itemdb.sqlite3

以下のようにAndroid pronpt上で「python create_db.py」を実行すると、’itemdb.sqlite3’が作成されます。(ファイル名は(1)の3行目になります。)

 


(3)itemdb.py

DB操作のための関数を定義します。

・3行目:’current_app’はアプリケーション本体の情報や設定の為のメソッドを備えたオブジェクトです。’g’はDBの接続情報を保持するディクショナリです。

・5行目:DBより接続情報を取得します。キー’db’に接続情報を与えます。

・15行目:DBを閉じます。

・20行目:古いアプリケーションを破棄し、初期化します。

 


(4)__init__.py

(3)を呼び出してDBを操作します。

・2行目:osをインポート。(後記の相対パスの取得で使用)

・10行目:itemdbモジュールをインポート。

・13行目:’SEACRET_KEY’は暗号化キーを設定します。’DATABASE’にはitems.sqlite3の相対パスを設定します。

 


(5)items.py

DBの情報を取得して、商品データベースページに表示します。

・5行目:(4)のget_db関数をインポート。

・11行目:DBに接続。

・12行目:itemsの全件を取得して、indexページに返します。

 


実行結果は以下になります。

1 throughts on "FlaskでSQLite3を使用する"

  1. flaskの勉強に活用させてもらっています。
    情報が多くない中、大変助かっています。

    (4)__init__.pyですが、”def create_app():” 内の “return app” が抜けているように思われます。
    (少なくとも当方の環境では、これを入れたら “NoAppException” エラーを消すことができました。)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です