ホームページ >バックエンド開発 >Python チュートリアル >SQLAlchemy をデータベース操作に使用する方法
SQLAlchemy をデータベース操作に使用する方法
SQLAlchemy は、リレーショナル データベースとの対話と操作を簡素化するために使用される人気のある Python ライブラリです。これは、開発者が元の SQL ステートメントを作成せずに Python コードを使用してデータベースを操作できるようにするオブジェクト リレーショナル マッピング (ORM) アプローチを提供します。この記事では、データベース操作に SQLAlchemy を使用する方法を紹介し、読者がすぐに使い始めるのに役立つコード例を添付します。
まず、SQLAlchemy ライブラリをインストールする必要があります。コマンド ラインで次のコマンドを実行して、インストールを完了します。
pip install sqlalchemy
開始する前に、ターゲット データベースに接続する必要があります。 SQLAlchemy は、MySQL、PostgreSQL、SQLite、Oracle などのさまざまなデータベースをサポートしています。次のコード例は、SQLite データベースに接続します。
from sqlalchemy import create_engine # 创建数据库引擎 engine = create_engine('sqlite:///example.db')
上記のコードは、SQLite データベース エンジンを作成し、データベース ファイルへのパスを指定します。他の種類のデータベースに接続する必要がある場合は、接続文字列の「sqlite」を対応するデータベースの種類に置き換えるだけです。
SQLAlchemy を ORM 操作に使用するための中心的な概念はデータ モデルです。データ モデルは Python クラスで表され、各クラスはデータベース内のテーブルに対応します。次のコード例では、「User」という名前のデータ モデルを定義します。
from sqlalchemy import 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) email = Column(String)
上記のコードは、「User」という名前のデータ モデルを定義し、テーブル名は「users」です。データ モデルの各属性はテーブルの列に対応します。「id」は主キー列です。
データ モデルを使用する前に、対応するテーブルを作成する必要があります。次のコード例では、「users」という名前のテーブルを作成します。
Base.metadata.create_all(engine)
上記のコードは、データ モデル内の定義を使用して、対応するテーブル構造を自動的に作成します。
テーブル構造が作成されたら、データベース操作を開始できます。次のコード例では、新しいユーザー レコードを挿入します。
from sqlalchemy.orm import sessionmaker # 创建会话工厂 Session = sessionmaker(bind=engine) session = Session() # 创建新用户 new_user = User(name='John Doe', email='johndoe@example.com') # 添加到会话 session.add(new_user) # 提交事务 session.commit()
上記のコードでは、データベース操作にセッション オブジェクトを使用します。まず、セッション ファクトリが作成され、データベース エンジンにバインドされます。次に、セッション ファクトリを通じてセッション オブジェクトを作成します。次に、新しいユーザー オブジェクトが作成され、session.add()
メソッドを使用してセッションに追加されます。最後に、session.commit()
を使用してトランザクションをコミットし、データをデータベースに保存します。
SQLAlchemy をクエリ操作に使用する場合、クエリ式または SQL ステートメントを使用できます。次のコード例では、すべてのユーザー レコードをクエリします。
# 查询所有用户 users = session.query(User).all() # 打印查询结果 for user in users: print(user.name, user.email)
上記のコードは、session.query(User)
を使用してクエリ オブジェクトを作成し、.all()# を呼び出します。 ## クエリ操作を実行するメソッドは、すべてのユーザー レコードを返します。クエリ結果をトラバースすることで、各レコードの属性値を取得できます。
# 查询指定用户 user = session.query(User).filter_by(name='John Doe').first() # 更新电子邮件地址 user.email = 'newemail@example.com' # 提交事务 session.commit()上記のコードでは、
session.query(User).filter_by(name='John Doe').first() を使用します。指定されたユーザー レコードをクエリし、その属性値を変更することでデータを更新します。
# 查询指定用户 user = session.query(User).filter_by(name='John Doe').first() # 删除用户 session.delete(user) # 提交事务 session.commit()上記のコードは、
session.delete(user) を使用して、指定されたユーザー レコードを削除します。
以上がSQLAlchemy をデータベース操作に使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。