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

タグ: , , ,