概要
テーブルなどは SQL コマンドで直接作っている場合にデータの操作を SQLAlchemy から行う方法を紹介します
環境
- Python 3.10.2
- sqlalchemy 1.4.39
サンプルコード
テーブルなどは作成しないでそのままモデルを生成して操作すれば良さそうです
カラムの型さえあっていれば良さそうで鍵の制約や NULL 情報はなくても大丈夫でした
リフレクションする方法もあるようですが単純なテーブルで 1 つだけ操作したい場合などはこれで十分かなと思います
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.schema import Column
from sqlalchemy.types import (Integer,
String,
DateTime)
engine = create_engine("mysql://user001:xxx@192.168.100.10/your_table_name?charset=utf8mb4")
SessionClass = sessionmaker(engine)
db_session = SessionClass()
Base = declarative_base()
class User(Base):
__tablename__ = 'user'
id = Column(String(32), primary_key=True)
name = Column(String(8))
age = Column(Integer)
created_at = Column(DateTime)
updated_at = Column(DateTime)
users = db_session.query(User).all()
ちなみに Ubuntu の場合は libmysqlclient-dev パッケージが必要になります