ホームページ  >  記事  >  バックエンド開発  >  PythonのORMフレームワークであるTortoise ORMの詳細説明

PythonのORMフレームワークであるTortoise ORMの詳細説明

WBOY
WBOYオリジナル
2023-06-10 14:37:456738ブラウズ

Python は不可欠なプログラミング言語であり、開発が続くにつれて、多くの強力なツールやフレームワークが登場してきました。中でも、Python開発においてORM(Object Relational Mapping)フレームワークは非常に重要です。 Tortoise ORM は、非同期構文に基づいており、非常に高いパフォーマンスとスケーラビリティを備えた Python の ORM フレームワークです。この記事では、Tortoise ORMの特徴と基本的な使い方を詳しく紹介します。

  1. ORM フレームワークとは何ですか?

ORM フレームワークは、オブジェクト指向プログラミング言語のデータ オブジェクトをリレーショナル データベースにマッピングするテクノロジーです。 ORM はデータ オブジェクト モデルを通じて開発効率を向上させ、開発者がオブジェクト指向プログラミング インターフェイスを使用してリレーショナル データベースを操作できるようにします。SQL ステートメントを手書きしたり、オブジェクト指向でデータ処理を実行したりする必要はありません。

  1. Tortoise ORM の特徴

Tortoise ORM は、Python 3.6 言語をベースとした非同期 ORM ライブラリです。 Tortoise ORM の主な特徴は次のとおりです。

(1) 高効率: Tortoise ORM は非同期構文を使用し、高度な同時実行性をサポートでき、優れたパフォーマンスを備えています。

(2) 使いやすさ: Tortoise ORM は使いやすく、Django ORM と同様の構文をサポートし、完全な ORM モデル (メタクラス) セットを提供します。

(3) 拡張が簡単: スケーラビリティを向上させるために、Tortoise ORM はモデルの作成をデータベースから分離し、コードをより簡単にリファクタリングできるようにします。

(4) 豊富なプラグイン: Tortoise ORM は、非同期 ElasticSearch、PostgreSQL、Aiopg、PgAmdin、AsyncSSH、APscheduler、AIOCache など、多くのサードパーティ プラグインをサポートしています。

  1. Tortoise ORM の使用方法

まず、MySQL データベースと PyMySQL ドライバーが必要です。 MySQL データベースと PyMySQL ドライバーをインストールしていない場合は、次のコマンドを使用してインストールできます:

pip install pymysql

MySQL サーバーで ssl が有効になっていない場合は、フラグ -use-optionssl=True をインストールして使用します。 SSH 暗号化接続 :

pip install pymysql[ssl]

次に、Tortoise ORM とその依存関係をインストールする必要があります:

pip install tortoise-orm

Tortoise ORM を使用するには、Tortoise ORM オブジェクトを作成する必要があります。このオブジェクトでは、データベースに接続するための URL、ユーザー名、パスワード、データベース名を指定できます。例:

from tortoise import Tortoise

TORTOISE_ORM = {
    "connections": {"default": "mysql://user:password@127.0.0.1:3306/test_db"},
    "apps": {
        "models": {
            "models": ["__main__"],
            "default_connection": "default",
        },
    },
}

async def init_orm():
    await Tortoise.init(TORTOISE_ORM)
    await Tortoise.generate_schemas()

asyncio.run(init_orm())

ここでは、データベース接続の URL とアプリケーションのリストを指定する TORTOISE_ORM ディクショナリを定義します (この場合、__main__ モジュールのみを使用します)。次に、Tortoise オブジェクトを初期化し、データベース スキーマを生成する init_orm 関数を作成しました。

次に、データベース モデル (モデル) を定義できます。これは Python クラスであり、Tortoise で提供されるモデルを継承する必要があります。例:

from tortoise import fields, models

class User(models.Model):
    id = fields.IntField(pk=True)
    username = fields.CharField(50, unique=True)
    password = fields.CharField(128)
    created_at = fields.DatetimeField(auto_now_add=True)
    updated_at = fields.DatetimeField(auto_now=True)

ここでは、ID フィールド、ユーザー名フィールド、パスワード フィールド、および 2 つのタイムスタンプ フィールド (作成時間と更新時間) を持つユーザー モデルを定義します。 id フィールドでは、主キーを指定するために pk=True を使用する必要があることに注意してください。

これで、ORM モデルを使用してデータベースにアクセスできるようになりました。たとえば、新しいユーザーをデータベースに挿入する場合は、次のコードを使用できます。

async def create_user(username: str, password: str) -> User:
    user = User(username=username, password=password)
    await user.save()
    return user

ここでは、まず User オブジェクトを作成し、次に save() メソッドを呼び出してそれを保存します。データベースを取得し、最後に User オブジェクトを返します。次のコードを使用してデータベースからユーザーを取得することもできます:

async def get_user_by_username(username: str) -> Union[None, User]:
    return await User.filter(username=username).first()

ここでは、User クラスの filter メソッドを使用してユーザー名でユーザーを検索し、first() メソッドを呼び出して最初のユーザーを返すことができます。マッチング結果。

  1. Tortoise ORM プラグイン

オープンで柔軟な ORM フレームワークとして、Tortoise ORM は多くのプラグインをサポートしています。以下は、いくつかのプラグインの簡単な紹介です:

(1) tortoise-orm[elastic]: 非同期 Elasticsearch をサポートします。

(2) tortoise-orm[asyncpg]: PostgreSQL データベースのサポート。

(3) tortoise-orm[aiopg]: AioPg データベースのサポート。

(4) tortoise-orm[admin]: ビジュアル インターフェイスおよび管理ツール。

(5) tortoise-orm[sqlite]: SQLite データベースのサポート。

(6) tortoise-orm[aiofiles]: ファイル ストレージのサポート。

(7) tortoise-orm[aioredis]: Redis データベースのサポート。

(8) tortoise-orm[asyncssh]: SSH クライアントとサーバーのサポート。

(9) tortoise-orm[aiohttp]: aiohttp ライブラリを使用した Web フレームワークのサポート。

これらのプラグインは、ビジネス ニーズに応じて選択できます。ビジネス ニーズに合った Tortoise ORM とプラグインの使用を選択して、開発効率を向上させることができます。

  1. 概要

Tortoise ORM は、優れたパフォーマンスと使いやすさを備えた ORM ライブラリであり、強力な機能、優れた拡張性、プラグイン メカニズムを備えています。非同期構文を使用し、高度な同時実行性をサポートできます。同時に、Tortoise ORM は、使いやすい Django ORM に似た構文も提供します。 Python アプリケーションでは、開発効率が大幅に向上し、アプリケーションがデータベースとより効率的に対話できるようになります。

以上がPythonのORMフレームワークであるTortoise ORMの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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