ホームページ >バックエンド開発 >Python チュートリアル >Python サーバー プログラミングで ORM フレームワークを使用するにはどうすればよいですか?

Python サーバー プログラミングで ORM フレームワークを使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-18 17:12:11975ブラウズ

サーバーサイド プログラミングで Python が広く使用されるようになったことで、ORM (オブジェクト リレーショナル マッピング) フレームワークが Python サーバー プログラミングの重要な部分になりました。 ORM フレームワークは、データベース内のデータを Python オブジェクトにマッピングし、共通インターフェイスを抽象化することでデータベース操作を簡素化し、開発者が基礎となるデータベース操作ではなくビジネス ロジックの実装に集中できるようにします。この記事では、Python サーバー プログラミングで ORM フレームワークを使用する方法を紹介します。

ORM フレームワークの利点

従来のデータベース操作では、SQL ステートメントを使用してデータベースを追加、削除、変更、クエリする必要があります。このような操作には、データベース構造、データ テーブル構造、SQL 構文を理解する必要があり、維持や拡張が困難です。 ORM フレームワークを使用すると、データ テーブルを Python クラスにマップし、追加、削除、変更、クエリの操作を抽象化できるため、開発が簡素化されます。 ORM フレームワークの利点は次のとおりです。

  1. #抽象データ テーブル

データ テーブルは、データベース内の最も基本的なストレージ ユニットです。 ORM フレームワークを使用すると、データ テーブルを Python クラスにマッピングでき、クラスの属性がデータ テーブルの列名に対応するため、データ テーブルの抽象化が実現します。このように、データ テーブルの操作は、Python クラスの操作と同等です。

  1. 操作の簡素化

ORM フレームワークを使用すると、単純な Python 関数とメソッドを使用してデータベースを操作できます。基礎となる SQL 操作をカプセル化できるため、呼び出すだけで済みます。追加、削除、変更、確認操作を実行できます。

  1. メンテナンスの難しさの軽減

ORM フレームワークを使用すると、データベース操作の基礎となる詳細を抽象化し、データベースとコード間の結合を軽減できるため、メンテナンスと拡張が軽減されます。この困難により、開発者はビジネス ロジックの実装により集中できるようになります。

適切な ORM フレームワークを選択する

Python には、Django ORM、SQLAlchemy、Peewee など、多くの ORM フレームワークがあります。適切な ORM フレームワークを選択するときは、次の点を考慮する必要があります。

  1. 独自の開発フレームワークと互換性がありますか

Python Web フレームワークを使用している場合は、 Flask や Django などの場合、選択した ORM フレームワークがそのフレームワークと互換性があることを確認する必要があります。

  1. データベース サポート

異なる ORM フレームワークは、異なるデータベースをサポートします。たとえば、Django ORM は PostgreSQL、MySQL、SQLite のみをサポートしますが、SQLAlchemy はより多くのデータベースをサポートします。Oracle、 SQLサーバー、MySQLなどしたがって、自分の用途に適した ORM フレームワークを選択する必要があります。

  1. 機能サポート

異なる ORM フレームワークは、異なるアプリケーション シナリオに対して異なる機能サポートを提供します。独自のニーズに基づいて、ニーズを満たす ORM フレームワークを選択する必要があります。

SQLAlchemy を使用した ORM の実装

SQLAlchemy は、Python サーバー プログラミングで最も人気のある ORM フレームワークの 1 つで、ほとんどのデータベースで動作できるフル機能の SQL ツールキットおよび ORM ライブラリです。対話します。以下では、SQLAlchemy を使用して ORM を実装する方法を紹介します。

SQLAlchemy のインストール

始める前に、まず 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

データ テーブルと Python クラスの作成

データベース操作に 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__ 属性で対応するデータ テーブル名を指定し、各属性がデータ テーブルの列に対応します。

ORM 操作の実装

データベース接続を確立し、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 つのステップに分かれています:

  1. クエリ データ テーブル オブジェクトを作成し、セッションを使用してクエリ データ テーブル オブジェクトを作成します。クエリオブジェクト。
  2. Query オブジェクトで filter() や order_by() などのメソッドを使用してクエリを実行します。
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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。