Pythonでライブラリを使用して、データベース(MySQL)を操作します。
Linux(RaspberryPi)上で、Pythonでデータベースにデータを追加したり、取得できるようにします。
ライブラリのインストール
PythonからMySQLを使えるようにするため、MySQL-pythonを使います。
sudo apt-get install python-pip sudo pip install MySQL-python
エラーになる場合は、以下のパッケージが足りないことが多い為、追加でインストールします。
sudo apt-get install python-dev
EnvironmentError: mysql_config not foundのエラーが出た場合は、以下のパッケージもインストールします。
sudo apt-get install libmysqlclient-dev
データベースへの接続
PythonでMySQLのデータベースへ接続するには、以下のプログラムを記述します。
# -*- coding: utf-8 -*- import MySQLdb if __name__ == "__main__": connector = MySQLdb.connect(host="localhost", db="データベース名", user="ユーザ名", passwd="パスワード", charset="utf8") connector.close()
データを追加する
データを取得するためには、cursor = connector.cursor()でカーソルを取得して、操作します。
カーソルからの操作は、SQLで行います。
以下では、insert文で、データを1つづつ追加しています。
# -*- coding: utf-8 -*- import MySQLdb if __name__ == "__main__": connector = MySQLdb.connect(host="localhost", db="データベース名", user="ユーザ名", passwd="パスワード", charset="utf8") cursor = connector.cursor() sql = u"insert into test_table values(‘id1’,'value1')" cursor.execute(sql) sql = u"insert into test_table values(‘id2’,’value2')" cursor.execute(sql) connector.commit() cursor.close() connector.close()
データを取得する
Pythonでデータベースからデータを取得します。
select文でデータをすべて取得し、fetcallで全データを表示するサンプルプログラムです。
select文での取得条件whereを変更すれば、条件に当てはまるデータのみを取得できます。
# -*- coding: utf-8 -*- import MySQLdb if __name__ == "__main__": connector = MySQLdb.connect(host="localhost", db="データベース名", user="ユーザ名", passwd="パスワード", charset="utf8") cursor = connector.cursor() sql = "select * from テーブル名" cursor.execute(sql) records = cursor.fetchall() for record in records: print record cursor.close() connector.close()