2017年5月9日火曜日

Raspberry Pi 3のPython3でMySQLを使う

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のインストール


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 件のコメント:

コメントを投稿