Raspberry PiのPython3環境でMySQLを使いたので調べたところ、PyMySQLとmysqlclientというモジュールが使えるらしい。ちなみに、MySQL用のPythonモジュールとしては他にmysql-connector-pythonとMySQLdbもあるが、前者はRaspberry Piで使えないし、後者はPython2用のモジュール。ここではmysqlclientを使ってみる。
OSのバージョンはRaspbian Jessie。
Python3のバージョンは3.4。
MySQLのバージョンは5.5。
mysqlclientのインストールにはlibmysqlclient-devが必要なのであらかじめインストールしておく。
pipでmysqlclientをインストール。
インストールされたmysqlclientのバージョンは1.3.10。
あらかじめテーブルを作成しておく。
mysqlclientの使い方はSQlite3のときとそれほど変わらないので、SQlite3から移行するなら意外と簡単にできるかも。気をつけるところはプレースホルダが「?」でなく「%s」。以下は作成したテーブルにレコードを追加するコード。
結果を確認。
環境
OSのバージョンはRaspbian Jessie。
Python3のバージョンは3.4。
MySQLのバージョンは5.5。
mysqlclientのインストール
mysqlclientのインストールにはlibmysqlclient-devが必要なのであらかじめインストールしておく。
pipでmysqlclientをインストール。
インストールされたmysqlclientのバージョンは1.3.10。
サンプルコード
あらかじめテーブルを作成しておく。
mysqlclientの使い方はSQlite3のときとそれほど変わらないので、SQlite3から移行するなら意外と簡単にできるかも。気をつけるところはプレースホルダが「?」でなく「%s」。以下は作成したテーブルにレコードを追加するコード。
from datetime import datetime # なぜかimportするときはの名前はMySQLdb import MySQLdb #MySQLのユーザ名、パスワード、MySQLが動作しているホスト、データベース名を設定 conn = MySQLdb.connect( user='user_name', passwd='password', host='localhost', db='database_name' ) cur = conn.cursor() d = datetime.now().strftime('%Y-%m-%d') name = 'name' # プレースホルダは%s sql = "INSERT INTO sample VALUES(1, %s, %s)" cur.execute(sql, (d, name,)) conn.commit() conn.close()
結果を確認。
0 件のコメント:
コメントを投稿