ホームページ > バックエンド開発 > Python チュートリアル > FastAPI のカスタム ページで 404 応答を処理する方法は?

FastAPI のカスタム ページで 404 応答を処理する方法は?

Patricia Arquette
リリース: 2024-10-24 02:08:29
オリジナル
941 人が閲覧しました

How to Handle 404 Responses with Custom Pages in FastAPI?

FastAPI のカスタム ページでの 404 レスポンスの処理

概要

FastAPI は、Python の人気のある Web フレームワークであり、 API を構築するためのクリーンで効率的な方法。 Web アプリケーションを操作する場合の一般的な要件の 1 つは、要求されたリソースが見つからない (404 Not Found) 場合に返される応答をカスタマイズできることです。この記事では、FastAPI を使用してカスタム 404 ページを作成するプロセスについて説明します。

カスタム レスポンス ハンドラーの使用

404 レスポンスを処理する 1 つの方法は、カスタム例外ハンドラー。 FastAPI を使用すると、特定の例外をインターセプトして処理できるカスタム例外ハンドラーを登録できます。この例では、404 ステータス コードの例外ハンドラーを作成し、カスタム応答を返すことができます。

カスタム 404 応答ハンドラーを作成する方法の例を次に示します。

<code class="python">from fastapi.exceptions import HTTPException
from fastapi.responses import HTMLResponse

@app.exception_handler(404)
async def not_found_handler(request: Request, exc: HTTPException):
    return HTMLResponse("<h1>Not Found</h1><p>The requested resource could not be found.</p>", status_code=404)</code>
ログイン後にコピー

ミドルウェアの使用

404 応答を処理するためのもう 1 つのオプションは、ミドルウェアを使用することです。ミドルウェアは、各要求と応答のサイクルの前後に実行される関数です。この例では、ミドルウェアを使用して 404 応答をチェックし、カスタム応答を返すことができます。

404 応答を処理するミドルウェアを作成する方法の例を次に示します。

<code class="python">from fastapi import Request, Response, status
from fastapi.responses import HTMLResponse

@app.middleware(&quot;http&quot;)
async def handle_404(request: Request, call_next):
    response = await call_next(request)
    if response.status_code == status.HTTP_404_NOT_FOUND:
        return HTMLResponse("<h1>Not Found</h1><p>The requested resource could not be found.</p>")
    return response</code>
ログイン後にコピー

注: 404 応答を処理するためにカスタム応答ハンドラーとミドルウェアの両方を使用している場合は、ミドルウェアが優先されることに注意することが重要です。

結論

FastAPI での 404 応答のカスタマイズは、カスタム応答ハンドラーまたはミドルウェアを使用して実現できる簡単なプロセスです。この記事で説明されている手法に従うことで、より有益でユーザーフレンドリーなエクスペリエンスを提供するカスタム 404 ページを作成できます。

以上がFastAPI のカスタム ページで 404 応答を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート