それっぽい技術メモ

UNIXからpythonまで、技術系メモ。知識は人類の共有財産です。

python + Flask で MySQLに接続

python + flaskでMySQLにつなぐために、今回は mysql-connector-python を使っていきます。
これを選んだ理由は、他の方法でうまくいかなかったから。
あと、接続情報がぱっと見で見やすかったら、後からini化しやすいなぁと思ったので。

まずは、pipってmysql-connector-pythonを追加します。

>pip install mysql-connector-python

で本体はこんな感じで書きます。
ちなみにMySQL側はこんな感じで初期設定している前提で。

テーブル構成とデータ

f:id:kopumin:20200606103927p:plain
基本テーブル1

python.py

from flask import Flask
import mysql.connector

#DB接続情報
def conn_db():
      conn = mysql.connector.connect(
              host = '127.0.0.1',      #localhostでもOK
              user = 'localadmin',
              passwd = 'passwd',
              db = 'sample'
      )
      return conn

#本体
sql = 'SELECT * FROM sample'

try:
      conn = conn_db()              #ここでDBに接続
      cursor = conn.cursor()       #カーソルを取得
      cursor.execute(sql)             #selectを投げる
      rows = cursor.fetchall()      #selectの結果を全件タプルに格納
except(mysql.connector.errors.ProgrammingError) as e:
      print('エラーだぜ')
      print(e)

print('select結果だぜ')
for t_rows in rows:
      print(t_rows[0], t_rows[1], t_rows[2])    #selectの結果を1行ずつ表示

今回はSQLの実行結果を全件受けてタプルに格納して、printしています。
1件ずつ受けたい場合は、cusor.fetchone()で受けてください。

これができればあとは投げるSQLをINSERTにしたり、UPDATEにしたり、DELETEに変えればOK.