SQLAlchemyの詳細
SQLAlchemyはPythonのための強力なORM(Object Relational Mapper)であり、リレーショナルデータベースとの対話を効率的かつ抽象的に行うことができます。以下は、SQLAlchemyの基本的な概念とサンプルコードの例です。
SQLAlchemyの基本的な概念:
- モデルの定義:
- データベースのテーブルをPythonのクラスとして表現します。各クラスの属性はテーブルのカラムに対応します。
python from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) - データベースセッションの作成:
- データベースとの対話に使用するセッションを作成します。
python from sqlalchemy.orm import sessionmaker engine = create_engine('sqlite:///example.db') Session = sessionmaker(bind=engine) session = Session() - クエリの発行:
- SQLAlchemyのクエリを使用してデータベースに対する操作を行います。
python # データのクエリ user = session.query(User).filter_by(name='John').first() # データの挿入 new_user = User(name='Alice') session.add(new_user) session.commit() # データの更新 user.name = 'Jane' session.commit() # データの削除 session.delete(user) session.commit()
- トランザクションの管理:
- SQLAlchemyはトランザクションの自動管理をサポートしています。
python # トランザクションの開始 with session.begin(): user1 = User(name='John') session.add(user1) user2 = User(name='Alice') session.add(user2)
サンプルコード:
以下は、SQLAlchemyを使用してデータベースにユーザーを追加してクエリする簡単なサンプルコードです。
python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# データベースに接続
engine = create_engine('sqlite:///example.db')
Base = declarative_base()
# モデルの定義
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
# テーブルの作成
Base.metadata.create_all(engine)
# セッションの作成
Session = sessionmaker(bind=engine)
session = Session()
# ユーザーの追加
new_user = User(name='John')
session.add(new_user)
session.commit()
# ユーザーのクエリ
user = session.query(User).filter_by(name='John').first()
print(user.name)
このコードはSQLiteデータベースを使用していますが、他のデータベースエンジンでも同様に適用できます。SQLAlchemyの公式ドキュメントやチュートリアルも参考にすると良いでしょう。

ディスカッション
コメント一覧
まだ、コメントがありません