はじめに
FastAPIは、PythonでAPIを構築するための高性能で簡単に使用できるウェブフレームワークとして、素早く人気を博しました。関連付けられた関係型データベースとともに、FastAPIは強力でスケーラブルなアプリケーションを作成することができます。このガイドで、Ubuntu 24.04マシン上で関連付けられた関係型データベースとともにFastAPIアプリケーションを設定する手順を説明します。必要なツールのインストールからデータベースの設定、APIエンドポイントの作成までをカバーします。
FastAPIとPostgreSQLデータベースの使用
- Python環境の設定
- 仮想環境の作成と活性化
- PostgreSQLのインストールと設定
- FastAPI アプリケーションを作成する
- 必要なライブラリをインストールする
- Python アプリケーションを実行する
- FastAPI アプリケーションのエンドポイントをテストする
前提条件
このチュートリアルに従う前に、以下が必要です。
-
Ubuntuを実行しているサーバーと、sudo権限を持つ非rootユーザー。設定方法についてのガイドラインは、このリストからお選びくださいし、最初のサーバー設定ガイドを参照してください。Ubuntuのサポートされているバージョンで作業することを確認してください。
-
Linuxのコマンドラインに慣れていること。コマンドラインの入門または再び学ぶために、このガイドを参照してください:《Linux command line primer》。
-
Ubuntuのターミナルで
sudo apt-get update
を実行して、あなたのシステムが、設定されているリポジトリから提供されるソフトウェアの最新のバージョンとセキュリティアップデートを取得していることを確認します。
これらの指示は、Ubuntuの最新バージョンに適用できます:Ubuntu 24.04、Ubuntu 22.04、およびUbuntu 20.04。Ubuntu 18.04またはそれ以下のバージョンを使用している場合、Ubuntuはこれらのバージョンのサポートをもはや提供していませんので、更新することを推奨します。このガイドのコレクションを参照することで、Ubuntu バージョンのアップグレードを助けています。
ステップ 1 – Python 環境の設定
Ubuntu 24.04にはPython 3がデフォルトで含まれています。ターミナルを開いて以下のコマンドを実行して、Python 3のインストールを確認してください。
Python 3が既にインストールされている場合、このコマンドはPython 3の現在のバージョンを返します。インストールされていない場合、以下のコマンドを実行してPython 3のインストールを行います。
次に、pip
およびdev
パッケージインストーラーをシステムにインストールします。ターミナルで以下のコマンドを実行してください。
このチュートリアルでは、PostgreSQLを关系型データベースとして使用します。PostgreSQLデータベースとのやり取りを行うためには、libpq-dev
を以下のコマンドでインストールする必要があります。
手順2 – 仮想環境の作成と活性化
次の手順で、Ubuntu インストール内で仮想環境を作成して、Python パッケージをシステム環境から分離します。このために、作業ディレクトリに移動して以下のコマンドを実行してください。
このコマンドは、名前されている fastapi-env
ディレクトリに新しい仮想環境を作成します。これには、独自のPythonパッケージが含まれ、他のプロジェクトとは分離されています。
この時点以降にインストールするパッケージが、この分離された環境にインストールされるようにするために、以下のように仮想環境を活性化する必要があります。
実行後、テーマルーマには仮想環境名前をプリフィックスとして表示されることになります。例如:
Output(fastapi-env) ubuntu@user:
ステップ 3 – PostgreSQLのインストールと設定
次の手順は、PostgreSQL(または関連的データベースの選択)をインストールすることです。
今、仮想環境内でPostgreSQLサービスを開始し、有効化する時間です。
PostgreSQLサービスの状態を確認するには、sudo systemctl status postgresql
を実行します。サービスを有効化すると、自動的にシステムの起動時に開始されます。
FastAPIと一緒にPostgreSQLをインストールして使用するには、いくつかのものをインストールする必要があります。
asyncpg
:これはアスynchronous PostgreSQLドライバーで、FastAPIがPostgreSQLデータベースとのやり取りを可能にします。SQLAlchemy
:これはORMツールで、Pythonコードを書く代わりにSQLを書く必要のないデータベーススキーマとクエリを管理します。databases
:これはSQLAlchemy
が非同期にFastAPIと一緒に動作するために必要な非同期操作のデータベースライブラリです。
これらをインストールするには、以下の結合されたコマンドを実行します。
次に、必要な権限を持ったPostgresデータベースとユーザーを作成します。
ステップ 4 – サンプルPythonアプリケーションの作成
运行中のPythonアプリケーションが必要でない場合、以下の手順に従って素早く新しいアプリケーションを作成できます。
プロジェクトディレクトリ内に新しいPythonファイルpostgres_db.py
を作成します。
テキストエディタで、データベース接続を作成し、データベース内にテーブルを作成するロジックを書きます。この例では、databases
パッケージを使用してPostgreSQLデータベース接続を作成し、SQLAlchemy
を使用してbooks
テーブルの構造を定義します。
ファイルを保存して閉じます。
次に、同じディレクトリ内にmain.py
を作成します。
このファイルに、アプリケーションの主要なロジックを書いてください:
このコードはFastAPIを使用してPostgreSQLデータベースに新しい本の記録を書き込み、それからそのコレクションを取得します。
手順5 – 必要なライブラリをインストール
Pythonアプリケーションで、さまざまなライブラリやパッケージを参照しています。アプリケーションを実行する前に、必要なライブラリをインストールしてください。
手順6 – Pythonアプリケーションを実行
現在、あなたが作成したアプリケーションを実行する時間です。
uvicorn
は、Asynchronous Server Gateway Interface (ASGI)で、FastAPIアプリケーションをサービスするために使用されます。uvicorn
を使用することは、FastAPIは自己の非同期Webフレームワークであるから、FastAPIアプリケーションを実行するために最も推奨されます。
上記のコマンドがエラーを発生せずに実行されると、以下のような出力が表示されるでしょう。
OutputINFO: Will watch for changes in these directories: ['/path/to/your/project']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [XXXX] using StatReload
INFO: Started server process [YYYY]
INFO: Waiting for application startup.
INFO: Application startup complete.
Webブラウザでhttp://127.0.0.1:8000
にアクセスして、クエリの出力を確認します。
手順7 [オプション] – エンドポイントをテストする
あなたのmain.py
で宣言したPOST
とGET
のエンドポイントをテストするには、http://127.0.0.1:8000
で実行されているサーバーにHTTP要求を送信することができます。
同様に、同じサーバーにGET
コールを行い、Postgresデータベースにある本の一覧を取得することができます。
結論
このチュートリアルでは、PostgreSQLデータベースとやりとりするシンプルなFastAPIアプリケーションの設定手順を説明しました。これらの手順は、AIアプリケーションにも有益です。特に、AIモデルとやりとりするWeb APIを構築したり、AIプロセスに関連するデータを管理する必要がある場合です。この基础を奠定した後、FastAPIプロジェクトを構築および拡張することができます。
FastAPIと共に働く方法についての更なる記事にご期待ください。
Source:
https://www.digitalocean.com/community/tutorials/use-fastapi-with-relationaldb-ubuntu