Python は不可欠なプログラミング言語であり、開発が続くにつれて、多くの強力なツールやフレームワークが登場してきました。中でも、Python開発においてORM(Object Relational Mapping)フレームワークは非常に重要です。 Tortoise ORM は、非同期構文に基づいており、非常に高いパフォーマンスとスケーラビリティを備えた Python の ORM フレームワークです。この記事では、Tortoise ORMの特徴と基本的な使い方を詳しく紹介します。
ORM フレームワークは、オブジェクト指向プログラミング言語のデータ オブジェクトをリレーショナル データベースにマッピングするテクノロジーです。 ORM はデータ オブジェクト モデルを通じて開発効率を向上させ、開発者がオブジェクト指向プログラミング インターフェイスを使用してリレーショナル データベースを操作できるようにします。SQL ステートメントを手書きしたり、オブジェクト指向でデータ処理を実行したりする必要はありません。
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 など、多くのサードパーティ プラグインをサポートしています。
まず、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() メソッドを呼び出して最初のユーザーを返すことができます。マッチング結果。
オープンで柔軟な 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 とプラグインの使用を選択して、開発効率を向上させることができます。
Tortoise ORM は、優れたパフォーマンスと使いやすさを備えた ORM ライブラリであり、強力な機能、優れた拡張性、プラグイン メカニズムを備えています。非同期構文を使用し、高度な同時実行性をサポートできます。同時に、Tortoise ORM は、使いやすい Django ORM に似た構文も提供します。 Python アプリケーションでは、開発効率が大幅に向上し、アプリケーションがデータベースとより効率的に対話できるようになります。
以上がPythonのORMフレームワークであるTortoise ORMの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。