当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

Python3 Bottleフレームワーク入門(その4)- ORM Peewee CRUD

Python3 Bottleフレームワーク入門(その4)- ORM Peewee CRUD


peeweeの続編です。前回では特定のデータを取得してWEBに表示するところまで行いましたが、今回は様々なパターンを実行してみたいと思います。



データベースから条件で抽出、条件で削除、条件でアップデート。表の結合(Join)の簡単なものを例に挙げます。

※テスト用に使うサンプルデータベースのimportファイルです。テストデータはご自分で入れてください。

MySQLテストインポートファイル

データのアップデート

既にあるフィールドを修正するケースです。まず最初に修正するレコードを探してそのポインターの変数を修正データに書き換えるという処理になります。下記はユーザ名(kasuo)を探してパスワードを書き換えています。

データの削除

指定したユーザの削除を行います。アップデート同様に特定ユーザを探して削除します。

データを全部取得し表示

UserとRoleテーブルを結合し出力

下記反転箇所でわかるように通常のSQL文を記述するよりも遥かにわかり易く記述が行える。

◯ 実行した結果は次のようになりました。

トランザクション処理の例

データベース書き込みでエクセプションエラーが発生した場合はロールバックが行われます。

合わせて呼んで欲しい記事
Python MySQLデータベース操作その1
Python MySQLデータベース操作その2



Python Bottle Framework入門 全13回
1.基礎編サーバ起動
2.リクエストメソッド
3.ORM Peewee (MySQL)
4.ORM Peewee CRUD
5.Cookie And Session
6.Abort and Redirect
7.マルチスレッドWEBサーバ
8.デーモン化
9.Json
10.WSGI on SSL
11.Apache連携起動(外部WSGI) SSL接続
12.Apache連携起動(ReverseProxy)SSL接続
13.hprox連携起動(ReverseProxy)SSL接続&HTTP2対応

合わせて読みたいPython MySQL操作関連

タグ: , , ,

Python3 Bottleフレームワーク入門(その3)- ORM Peewee (MySQL)


今回はデータベースを使ったケースを学んでいきましょう。フレームワークでの入門編ではほとんどのケースサンプルで載っているのは、Sqlite3を使ったケースが多いですが、実際の運用を考えて実験するとやはりMySQLでの実験運用が現実的と考える。やはり微妙に書き方が変わる可能性があるためそうした方が良いと思います。


また、今の時代フレームワークでORMを使うのが当たり前になってきているためBottleで利用できるORMの一つpeeweeを紹介したいと思います。やはりORMの利用で飛躍的にDBのCRUD処理が楽ちんになります。

peeweeの導入

peeweeを導入するにあたり今回はMySQLを使用した前提で説明していきたいと思います。

必要なMYSQLドライバーを事前にpipやbrewなどで導入してください。

必要ドライバー

  • MySQL-python
  • PyMySQL

peeweeを導入できたら最初にコードを作る前にMySQLでテーブルを作って見ましょう。既に既存で存在するテーブルからコードを生成する機能が用意されています。

上記のようなデータベースをMySQLで作成してみましょう。このコードをexport.sqlとして保存し、次のようにしてテーブル作成すると簡単で良いと思います。

下記のように指定を行って任意のファイルmodels.pyへ出力をしてすると自動的にORM操作を行う際に必要なテーブルのclassを生成してくれます。

DBから特定ユーザデータを抜き出して表示するプログラムを見てみましょう。

実際にブラウザからhttp://xxx.xxx.xxx.xxx:8080/user/James というようにチェックするためには、テーブルにダミーデータを入れておく必要があります。

◯ テストデータをDBへインサート

これで全ての準備が整ったので、改めてブラウザからhttp://xxx.xxx.xxx.xxx:8080/user/kazuoでアクセスしてみましょう。下記のように表示されたら成功です。



Python Bottle Framework入門 全13 回
1.基礎編サーバ起動
2.リクエストメソッド
3.ORM Peewee (MySQL)
4.ORM Peewee CRUD
5.Cookie And Session
6.Abort and Redirect
7.マルチスレッドWEBサーバ
8.デーモン化
9.Json
10.WSGI on SSL
11.Apache連携起動(外部WSGI) SSL接続
12.Apache連携起動(ReverseProxy)SSL接続
13.hprox連携起動(ReverseProxy)SSL接続&HTTP2対応

合わせて読みたいPython MySQL操作関連

タグ: , , , , ,