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

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

Python MySQLデータベース操作その2(更新、トランザクション) mysqlclientモジュール

Python MySQLデータベース操作その2(更新、トランザクション) mysqlclientモジュール


今回はアップデート処理を行いトランザクション処理としてロールバック機能等を入れてみる。ついでにSQLインジェクション対策のパラメータ挿入の仕方で記述します。パラメータの入れ方は多くの人がハマってしまうPython特有のぶら下がりカンマをあえて使います。入れる型に合わせて記述を考慮しなければいけませんがPython独特な書き方だと中々気づきにくいものです。他の言語では複数のリストやarrayを記述する場合は最後のパラメータの後方にはカンマを入れないのですがpythonは必要となるケースがありますのでご注意ください。尚、予め「pip install MySQL-python」or「pip install pymysql」でインストールしてください。mysql driverはpip側のアップデートで名前が変わったりすることもあります。また互換性のあるdriverであれば何でも良いと思いますのでpip searchで調べてみてください。

更新、トランザクション処理を入れたプログラム。SQLインジェクション対策の書き方にもなっている。

更新前と更新後を実行

タグ: , , ,

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操作関連

タグ: , , ,