技術共有

FastAPI 自体は高パフォーマンスの Web フレームワークです

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

FastAPI 自体は高パフォーマンスの Web フレームワークであり、データベース操作を直接サポートしませんが、さまざまなデータベース ライブラリを統合することでさまざまなデータベースと対話できます。 FastAPI は、ほぼすべてのリレーショナル データベースと非リレーショナル データベースをサポートします。これは主に、選択したデータベース ライブラリ (ORM ライブラリなど) と対応するデータベース ドライバーによって異なります。以下は、一般的にサポートされている FastAPI のデータベースと関連ライブラリです。

リレーショナルデータベース

  • PostgreSQL
    • SQLAlchemy や Tortoise ORM などの ORM ライブラリを通じて FastAPI と統合できます。
    • 非同期データベース アクセスの場合、PostgreSQL の非同期ドライバーとして asyncpg を使用できます。
  • マイグレーション
    • SQLAlchemy を ORM ライブラリとして使用することもできますが、pymysql や mysqlclient などのライブラリを通じて MySQL データベースに接続する必要があります。
  • SQLite
    • 別のサーバー プロセスを実行する必要がない軽量のファイルベースのデータベースであるため、小規模プロジェクトやプロトタイプ開発に最適です。
    • SQLAlchemy などの ORM ライブラリを直接使用して操作できます。
  • オラクル
    • FastAPI は、SQLAlchemy などの ORM ライブラリを通じて Oracle データベースと対話できます。
    • cx_Oracle など、対応する Oracle データベース ドライバーをインストールする必要があります。
  • マイクロソフトSQLサーバー
    • SQLAlchemy などの ORM ライブラリを使用して操作することもできますが、SQL Server データベースに接続するには pyodbc や pymssql などのライブラリをインストールする必要があります。

非リレーショナルデータベース

  • モンゴDB
    • FastAPI は、MongoEngine や Motor などのライブラリを通じて MongoDB と対話できます。
    • Motor は、FastAPI の非同期機能とよく適合する非同期 MongoDB Python ドライバーです。
  • レディス
    • Redis は通常、メモリ内のデータ構造ストアとして考えられていますが、キャッシュやメッセージングなどのシナリオでも使用できます。
    • FastAPI は、aioredis などのライブラリを通じて Redis と非同期に対話できます。

データベースライブラリの選択

  • SQLアルケミー
    • モデル定義、関係マッピング、セッション管理などの豊富な機能を提供する非常に人気のある ORM ライブラリです。
    • 複数のデータベース バックエンドをサポートし、FastAPI とシームレスに統合できます。
  • トータスORM
    • これは、Python 専用に設計された非同期 ORM ライブラリであり、Django ORM と同様の使用エクスペリエンスを提供します。
    • これは、FastAPI の非同期機能と完全に一致しており、高度な同時処理が必要なシナリオに適しています。
  • ピダンティック
    • データベース ライブラリではありませんが、FastAPI ではデータの検証とシリアル化のために重要な役割を果たします。
    • SQLAlchemy などの ORM ライブラリと組み合わせて使用​​すると、データ処理の効率とセキュリティがさらに向上します。

要約すると、FastAPI は、選択したデータベース ライブラリと対応するデータベース ドライバーに応じて、さまざまなデータベースをサポートします。選択するときは、プロジェクトの特定のニーズ、データベースのパフォーマンス特性、開発チームの精通度などの要素を考慮する必要があります。