第7章 SQLAlchemy ORMでデータを扱う SQLAlchemy ORM を使ってデータを扱う
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
さて、データベースのテーブルを表すクラスを定義し、それを永続化した。 この章では、データの挿入、取得、更新、削除の方法について説明する。そして、データのソートとグループ化の方法を学び、リレーションシップの仕組みを見ていく。SQLAlchemy ORM の最も重要な部分の一つである SQLAlchemy セッションについて学ぶことから始める。
セッション
セッションは SQLAlchemy ORM がデータベースとやりとりする方法です。セッションはエンジンを介したデータベース接続をラップし、セッション経由でロード したり、セッションと関連付けたりしたオブジェクトの ID マップを提供します。ID マップはキャッシュのようなデータ構造で、オブジェクトのテーブルと主キーに よって決まるオブジェクトの一意なリストを含む。 セッションはトランザクションもラップし、そのトランザクションはセッションがコミットされるかロールバックされるまでオープンされる。
新しいセッションを作成するために、SQLAlchemy はsessionmaker クラスを提供し、 アプリケーション全体で同じパラメータでセッションを作成できるようにしている。これは、sessionmaker ファクトリに渡された引数に従って設定されたSession クラスを作成することで実現されます。sessionmaker ファクトリは、アプリケーションのグローバルスコープで一度だけ使用し、コンフィギュレーション設定のように扱う。インメモリSQLiteデータベースに関連する新しいセッションを作成してみよう:
fromsqlalchemyimportcreate_enginefromsqlalchemy.ormimportsessionmakerengine=create_engine('sqlite:///:memory:')Session=sessionmaker(bind=engine)session=Session()
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access