Pythonでのデータベース操作


On this page

SQLAlchmyについて

SQLAlchmyはMySQL以外のSQL系データベースを一元的に扱うことができるパッケージでデータをclassに関連付けられる。 ただMySQLの場合はPyMySQLなどの別のパッケージを仲介させる必要があることに注意する。

インストールは以下のコマンド

$ pip install sqlalchemy

データベース(DB)への接続

まずはSQLAlchemyから接続に必要になるcreate_engineをインポートする。

from sqlalchemy import create_engine

次に接続先を設定する。

engine = create_engine("<DBの種類>+<仲介用ドライバー>://<ユーザー名>:<パスワード>@<接続先のアドレス>(:<接続先のポート>)/<DB名>?charset=<文字コード>")
  • DBの種類: 接続するDBの種類(mysqlとかpsqliteとか..)
  • 仲介用ドライバー: DBに接続するためのドライバーの指定 (MySQLならpymysql等を指定すること)
  • ユーザー名: DBに接続できるDBのユーザ名
  • パスワード: 上記のユーザーのパスワード
  • 接続先のアドレス: 接続先のサーバーのIPか名前解決できるhost名(自PCならlocalhost)
  • 接続先のポート: 上記のサーバーへ接続する際のPort(default:3306)
  • DB名: 接続したいDBの名前
  • 文字コード: DBを作った際に指定した文字コード(utf-8が無難)

データベースの窓口構築

SQLAlchmyはデータベースからデータをclassに関連付けて取り扱える。 そのためにその窓口となるclassを作って上げる必要がある。

from sqlalchemy.ext.declarative import declarative_base
(中略)
Base = declarative_base()
(中略)
class <class名(任意)>(Base):
  __tablename__ = '<Table名>'
  <Column名> = Column(<型、オプション等>)
  (後略)