サーバーサイド プログラミングで Python が広く使用されるようになったことで、ORM (オブジェクト リレーショナル マッピング) フレームワークが Python サーバー プログラミングの重要な部分になりました。 ORM フレームワークは、データベース内のデータを Python オブジェクトにマッピングし、共通インターフェイスを抽象化することでデータベース操作を簡素化し、開発者が基礎となるデータベース操作ではなくビジネス ロジックの実装に集中できるようにします。この記事では、Python サーバー プログラミングで ORM フレームワークを使用する方法を紹介します。
従来のデータベース操作では、SQL ステートメントを使用してデータベースを追加、削除、変更、クエリする必要があります。このような操作には、データベース構造、データ テーブル構造、SQL 構文を理解する必要があり、維持や拡張が困難です。 ORM フレームワークを使用すると、データ テーブルを Python クラスにマップし、追加、削除、変更、クエリの操作を抽象化できるため、開発が簡素化されます。 ORM フレームワークの利点は次のとおりです。
データ テーブルは、データベース内の最も基本的なストレージ ユニットです。 ORM フレームワークを使用すると、データ テーブルを Python クラスにマッピングでき、クラスの属性がデータ テーブルの列名に対応するため、データ テーブルの抽象化が実現します。このように、データ テーブルの操作は、Python クラスの操作と同等です。
ORM フレームワークを使用すると、単純な Python 関数とメソッドを使用してデータベースを操作できます。基礎となる SQL 操作をカプセル化できるため、呼び出すだけで済みます。追加、削除、変更、確認操作を実行できます。
ORM フレームワークを使用すると、データベース操作の基礎となる詳細を抽象化し、データベースとコード間の結合を軽減できるため、メンテナンスと拡張が軽減されます。この困難により、開発者はビジネス ロジックの実装により集中できるようになります。
Python には、Django ORM、SQLAlchemy、Peewee など、多くの ORM フレームワークがあります。適切な ORM フレームワークを選択するときは、次の点を考慮する必要があります。
Python Web フレームワークを使用している場合は、 Flask や Django などの場合、選択した ORM フレームワークがそのフレームワークと互換性があることを確認する必要があります。
異なる ORM フレームワークは、異なるデータベースをサポートします。たとえば、Django ORM は PostgreSQL、MySQL、SQLite のみをサポートしますが、SQLAlchemy はより多くのデータベースをサポートします。Oracle、 SQLサーバー、MySQLなどしたがって、自分の用途に適した ORM フレームワークを選択する必要があります。
異なる ORM フレームワークは、異なるアプリケーション シナリオに対して異なる機能サポートを提供します。独自のニーズに基づいて、ニーズを満たす ORM フレームワークを選択する必要があります。
SQLAlchemy は、Python サーバー プログラミングで最も人気のある ORM フレームワークの 1 つで、ほとんどのデータベースで動作できるフル機能の SQL ツールキットおよび ORM ライブラリです。対話します。以下では、SQLAlchemy を使用して ORM を実装する方法を紹介します。
始める前に、まず SQLAlchemy をインストールする必要があります。インストールには pip コマンドを使用できます。
pip install sqlalchemy
SQLAlchemy を ORM 操作に使用するには、まずデータベースとの接続を確立する必要があります。 SQLAlchemy では、create_engine()
from sqlalchemy import create_engine DB_URI = 'postgresql://username:password@host:port/database' engine = create_engine(DB_URI)
を使用してデータベースに接続できますが、このうち DB_URI は「{dialect}://{user}:{password}@」という形式のデータベース接続文字列です。 {host}:{port }/{database}"、たとえば、PostgreSQL 形式の接続文字列は次のとおりです:
postgresql://myuser:mypassword@localhost:5432/mydatabase
データベース操作に SQLAlchemy を使用するには、データテーブルを Python クラスにマップする必要があります。 Python クラスはデータベースのデータ テーブルに対応し、クラスの属性はテーブル内の列名に対応します。 Python クラスを作成する前に、まずデータ テーブルを作成する必要があります。 SQLAlchemy のデータ テーブルは Table として表されます。declarative_base() 関数を使用して基本クラスを作成し、その基本クラスを使用して Python クラスとデータベース テーブル間のマッピング関係を定義できます。
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) age = Column(Integer) email = Column(String)
上記のコードでは、User クラスが Base クラスを継承し、__tablename__ 属性で対応するデータ テーブル名を指定し、各属性がデータ テーブルの列に対応します。
データベース接続を確立し、Python クラスとデータ テーブル間のマッピング関係を作成したので、データベースを操作できるようになります。
データを挿入するには session.add() メソッドを使用し、トランザクションをコミットするには session.commit() メソッドを使用します。
from sqlalchemy.orm import sessionmaker Session = sessionmaker(bind=engine) session = Session() user = User(name='Tom', age=20, email='tom@example.com') session.add(user) session.commit()
SQLAlchemy を使用してクエリ操作を実行する手順は、主に 2 つのステップに分かれています:
users = session.query(User).filter(User.age > 18).order_by(User.age.desc()).all() for user in users: print(user.name, user.age, user.email)
更新データは、session.add() メソッドを使用して更新できます。
user = session.query(User).filter_by(name='Tom').first() user.age = 21 session.add(user) session.commit()
データベースからデータを削除するには、session.delete() メソッドを使用して削除操作を実行します。
user = session.query(User).filter_by(name='Tom').first() session.delete(user) session.commit()
在Python服务器编程中,ORM框架可以提供数据抽象、简化操作和降低维护难度的优势,能够加快开发速度。在选择ORM框架时,需要考虑自己的技术栈以及需求,选择相应的ORM框架。本文以SQLAlchemy为例,介绍了如何使用SQLAlchemy实现ORM操作,包括连接数据库、创建数据表和Python类以及实现增删改查操作。
以上がPython サーバー プログラミングで ORM フレームワークを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。