Python的なコードでDBを操作する【SQLAlchemy】その1
【SQLAlchemy】は、「エスキューエルアルケミー」と呼ぶそうな。
今回は、SQLを直接記述せずにPython的なコードでDBを操作する方法をまとめてみる。
SQLAlchemyに対応している(2018年3月現在)DBは以下の通り↓
・MySQL / PostgreSQL / SQLite / Microsoft SQLServer / Oracle / Firebird / Sybase
SQLAlchemyインストール後の大まかな手順は以下の通り↓
1.モジュールを読み込ませる
2.DBの作成
3.モデルとテーブルを作成する
4.セッションの作成とCRUD処理
私の場合はAnaconda Promptで行ったので、以下のコマンドでインストールする
pip install SQLAlchemy
pip install psycopg2
インストールできたら、まずは手順の1.モジュールを読み込ませる
from sqlalchemy import create_engine, Colum, Integer, String, DateTime from sqlalchemy .ext.declarative import declarative_base from sqlalchemy .orm import sessionmaker from sqlalchemy .orm.exc import NoResultFound
上記のモジュールを詳しく説明すると、
create_engine ⇒ DB接続するためのもの。エンジン生成の際には、「create_engine()」を一度だけ書く
Colum ⇒ カラム。DBのはなしで、テーブルの縦の列のこと。
Integer ⇒ 数字、整数型。
String ⇒ 文字型。
DateTime ⇒ 日時。
declarative_base ⇒ クラス定義を自動的にテーブル定義と紐づけるようにする
sessionmaker ⇒ sessionmaker() 関数。SQLAlchemyはこのセッションを通してクエリを実行する。
次に手順の2.DBの作成
DBの作成というよりかは、接続情報を設定する感じ。
engine = create_engine("mysql+pymysql://ユーザー名:パスワード@ホスト名/DB名")
※今回はMySQLを使用するので、上記設定になっている
次の手順3以降は次回に!
SQLAlchemyのイイトコロは、DBに関係なく、同じコードで書けるということ!