Python SQLAlchemyの使い方のサンプル
環境
Windows 11 Pro 64bit
Python 3.11
概要
SQLAlchemyを利用して、基本的なORM操作(INSERT, SELECT, UPDATE, DELETE)を確認します。
ファイル構成
.
└── sql
├── main.py # ORM操作をします。
├── models
│ └── user.py # userテーブルの定義をします。
└── setting
└── setting.py # Engineインスタンス, session生成など行います。
.
└── sql
├── main.py # ORM操作をします。
├── models
│ └── user.py # userテーブルの定義をします。
└── setting
└── setting.py # Engineインスタンス, session生成など行います。
. └── sql ├── main.py # ORM操作をします。 ├── models │ └── user.py # userテーブルの定義をします。 └── setting └── setting.py # Engineインスタンス, session生成など行います。
操作方法
1.パッケージインストール
DBにmysqlを利用するので、ドライバとして mysqlclient をインストールします。
pipenv install sqlalchemy
pipenv install mysqlclient
2.DB接続に必要な設定を行います。
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
dialect = "mysql"
driver = "mysqldb"
username = "root"
password = "pwd11"
host = "192.168.11.22"
port = "3306"
database = "test_db"
charset_type = "utf8"
db_url = f"{dialect}+{driver}://{username}:{password}@{host}:{port}/{database}?charset={charset_type}"
# DB接続するためのEngineインスタンス
ENGINE = create_engine(db_url, echo=True)
# DBに対してORM操作するときに利用
# Sessionを通じて操作を行う
session = scoped_session(
sessionmaker(autocommit=False, autoflush=False, bind=ENGINE)
)
# 各modelで利用
# classとDBをMapping
Base = declarative_base()
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
dialect = "mysql"
driver = "mysqldb"
username = "root"
password = "pwd11"
host = "192.168.11.22"
port = "3306"
database = "test_db"
charset_type = "utf8"
db_url = f"{dialect}+{driver}://{username}:{password}@{host}:{port}/{database}?charset={charset_type}"
# DB接続するためのEngineインスタンス
ENGINE = create_engine(db_url, echo=True)
# DBに対してORM操作するときに利用
# Sessionを通じて操作を行う
session = scoped_session(
sessionmaker(autocommit=False, autoflush=False, bind=ENGINE)
)
# 各modelで利用
# classとDBをMapping
Base = declarative_base()
from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base dialect = "mysql" driver = "mysqldb" username = "root" password = "pwd11" host = "192.168.11.22" port = "3306" database = "test_db" charset_type = "utf8" db_url = f"{dialect}+{driver}://{username}:{password}@{host}:{port}/{database}?charset={charset_type}" # DB接続するためのEngineインスタンス ENGINE = create_engine(db_url, echo=True) # DBに対してORM操作するときに利用 # Sessionを通じて操作を行う session = scoped_session( sessionmaker(autocommit=False, autoflush=False, bind=ENGINE) ) # 各modelで利用 # classとDBをMapping Base = declarative_base()