SQLAlchemyのサンプルコード

2024年6月18日

SQLAlchemyはPythonでSQLを操作するための強力なライブラリで、ORM(Object-Relational Mapping)機能を提供しています。以下に、SQLAlchemyを使用して簡単なデータベース操作を行うサンプルコードを示します。この例ではSQLiteデータベースを使用しますが、SQLAlchemyは他のデータベースとも連携できます。

まずは、必要なパッケージをインストールします。

bash
pip install sqlalchemy

そして、以下がサンプルコードです。

python
from sqlalchemy import create_engine, Column, Integer, String, Sequence
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# SQLite データベースへの接続
DATABASE_URL = "sqlite:///example.db"
engine = create_engine(DATABASE_URL, echo=True)

# モデルのベースクラスを定義
Base = declarative_base()

# モデルクラスの定義
class User(Base):
    __tablename__ = "users"
    id = Column(Integer, Sequence("user_id_seq"), primary_key=True)
    name = Column(String(50))
    age = Column(Integer)

# テーブルの作成
Base.metadata.create_all(engine)

# セッションの作成
Session = sessionmaker(bind=engine)
session = Session()

# データの追加
new_user = User(name="John Doe", age=30)
session.add(new_user)
session.commit()

# データの取得
user = session.query(User).filter_by(name="John Doe").first()
print(user.name, user.age)

# データの更新
user.age = 31
session.commit()

# データの削除
session.delete(user)
session.commit()

# セッションのクローズ
session.close()

このサンプルコードでは、Userクラスがデータベースのテーブルに対応しており、データの追加、取得、更新、削除を行っています。SQLAlchemyはORMを提供しているため、データベーステーブルをPythonのクラスとして扱えます。上記の例ではSQLiteを使用していますが、データベースエンジンのURLを変更することで他のデータベースにも対応できます。

未分類

Posted by ぼっち