SQLAlchemyでupdateするには?

SQLAlchemyを使ってデータベースのレコードを更新するには、Sessionオブジェクトを使用して次の手順を実行する必要があります。

  1. Sessionオブジェクトを作成する
  2. 更新したいレコードをSessionに追加する
  3. Sessionをコミットする 以下は、例として、usersテーブルからidが1のレコードのnameをJohnに更新する方法です。
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
from sqlalchemy.orm import sessionmaker

engine = create_engine('postgresql://user:password@host:port/database')
metadata = MetaData()
users_table = Table('users', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
)

Session = sessionmaker(bind=engine)
session = Session()

# id=1のレコードを取得する
user = session.query(users_table).filter(users_table.c.id == 1).one()

# nameを更新する
user.name = 'John'

# Sessionをコミットする
session.commit()

まず、create_engine()を使ってデータベースに接続します。次に、MetaDataオブジェクトを作成し、Tableオブジェクトを定義します。その後、sessionmaker()を使用して、Sessionオブジェクトを作成します。Sessionオブジェクトを使って、更新したいレコードを取得し、更新を行います。最後に、commit()を呼び出して、変更をデータベースに保存します。