MySQLドライバはどれを使えばいいのかはっきりわからない、というのがPython3に本格的に踏み込めないでいた一番の理由がだったわけですが、MySQL Connector/PythonがPython3をサポートしててDjangoでも使えてマルチバイト文字もちゃんと通るっぽかったので試してみました。
unzip mysql-connector-python-1.2.3.zip cd mysql-connector-python-1.2.3 python setup.py install pip freeze
インストールはこれだけ。
DB-API 2.0準拠らしいので触り方も変わらずに安心。こういうのがPythonのいいところじゃないかと。
import mysql.connector def main(): _conn = mysql.connector.connect( user='USERNAME', password='PASSWD', host='127.0.0.1', database='DBNAME') _cur = _conn.cursor() _cur.execute("select * from app_comment;") for _row in _cur.fetchall(): print(_row[0]) _cur.close() _conn.close() if __name__ == '__main__': main()
DjangoからMySQLを使うときはこれで。
DATABASES = { 'default': { 'NAME': 'DBNAME', 'ENGINE': 'mysql.connector.django', 'USER': 'USERNAME', 'PASSWORD': 'PASSWD', } }
マルチバイト文字使ってもinsert,update、selectひと通り問題なさ気だったので試しになんか書いてみようと思いました。
あ、Djangoは1.7で試してます。