ホームページ  >  記事  >  バックエンド開発  >  クエリ パラメーターを使用して FastAPI でデータをフィルターする方法

クエリ パラメーターを使用して FastAPI でデータをフィルターする方法

PHPz
PHPzオリジナル
2023-07-30 11:05:151384ブラウズ

FastAPI でクエリ パラメーターを使用してデータをフィルターする方法

はじめに:
FastAPI は、Python をベースとした最新の高速 (高性能) Web フレームワークです。使いやすく、パフォーマンスも非常に優れています。この記事では、クエリ パラメーターを使用して FastAPI でデータをフィルターし、データの柔軟なクエリを実現する方法を紹介します。

1. FastAPI アプリケーションを開始します
まず、以下に示すように、FastAPI アプリケーションを作成して開始する必要があります:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello, FastAPI!"}

上記のコードでは、FastAPI アプリケーションを作成しました。ルート ルート / を定義します。ルート ルートにアクセスすると、「Hello, FastAPI!」という単純なメッセージを返すことができます。

2. データ フィルタリングにクエリ パラメータを使用する
FastAPI では、Query 型パラメータを使用してクエリ パラメータを受け取ることができます。以下は、データ フィルタリングにクエリ パラメーターを使用する方法を示す例です:

from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/users/")
async def get_users(name: str = Query(None)):
    if name:
        # 根据查询参数 name 进行数据筛选
        result = db.query().filter(User.name == name).all()
    else:
        # 若没有查询参数,则返回所有的用户数据
        result = db.query().all()
    return {"users": result}

上記のコードでは、/users/ のルートを定義します。このルートにアクセスすることで、次のことができます。ユーザーデータを取得します。このルートはクエリ パラメータ name を受け入れます。これは、指定された名前でユーザー データをフィルタリングするために使用されます。クエリ パラメータ name が存在する場合は、このパラメータをデータ フィルタリングに使用します。それ以外の場合は、すべてのユーザー データが返されます。

3. 複数のクエリ パラメーターを同時に使用する
実際のシナリオでは、同時に複数のクエリ パラメーターに基づいてデータをフィルターする必要がある場合があります。データ フィルタリングに複数のクエリ パラメータを同時に使用する方法を示す例を次に示します。

from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/users/")
async def get_users(name: str = Query(None), age: int = Query(None)):
    query = db.query()

    if name:
        query = query.filter(User.name == name)

    if age:
        query = query.filter(User.age == age)

    result = query.all()

    return {"users": result}

上記のコードでは、/users/ のルートを定義し、2 つのクエリを受け入れます。パラメータ name および age。これら 2 つのクエリ パラメーターに基づいてデータを同時にフィルタリングし、より柔軟なクエリ操作を実現できます。

4. デフォルト値の使用と検証
FastAPI は、クエリ パラメーターのデフォルト値の設定と検証の実行もサポートしています。たとえば、age クエリ パラメータのデフォルト値を 20 に設定し、age の値の範囲を 10 に制限できます。 to ## Between #50:

from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/users/")
async def get_users(name: str = Query(None), age: int = Query(20, ge=10, le=50)):
    query = db.query()

    if name:
        query = query.filter(User.name == name)

    query = query.filter(User.age == age)

    result = query.all()

    return {"users": result}

上記のコードでは、

age を指定します。クエリ パラメーターのデフォルト値は 20 であり、# を使用します。 ##ge および le パラメータは age に対して検証されます。このように、リクエストで age クエリ パラメータが指定されていない場合は、デフォルト値 20 が自動的に使用され、age クエリ パラメータが指定されている場合は、デフォルト値 20 が自動的に使用されます。指定すると、値の範囲が検証されます。

結論:
上記のサンプル コードを通じて、FastAPI でのデータ フィルタリングにクエリ パラメーターを使用する方法を学びました。クエリ パラメーターを使用すると、アプリケーションに柔軟性が加わり、特定のニーズに応じてデータを自由にフィルターできるようになります。同時に、FastAPI は豊富な機能とオプションを提供し、クエリ パラメーターの使用をより強力かつ便利にします。この記事が FastAPI の学習と使用に役立つことを願っています。

以上がクエリ パラメーターを使用して FastAPI でデータをフィルターする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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