FastAPI と StaticFiles を使用してルート パスで特定の HTML ファイルを提供するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-12 05:34:01
オリジナル
484 人が閲覧しました

How to Serve a Specific HTML File on the Root Path Using FastAPI and StaticFiles?

StaticFiles を使用した FastAPI のルート パスでのカスタム HTML ファイルの提供

StaticFiles で FastAPI を使用する場合、カスタム HTML ファイルの提供は、予想される動作。デフォルト設定では、静的ファイルミドルウェアがルートパスにマウントされると、index.html が自動的にロードされます。ただし、次の手順に従ってこれをオーバーライドし、別の HTML ファイルをレンダリングすることは可能です。

StaticFiles を別のパスにマウントする

index.html の読み込みの問題を回避するにはでは、StaticFiles インスタンスをルートではなく一意のパスにマウントします。たとえば、/static にマウントします:

app.mount(
    "/static",
    StaticFiles(directory="static", html=True),
    name="static",
)
ログイン後にコピー

ルート パス エンドポイントの定義

次に、ルート パスを処理するカスタム エンドポイントを作成します。このエンドポイントは、目的のカスタム HTML ファイルを返します。

@app.get("/")
async def index():
    return FileResponse("static/custom.html", media_type="html")
ログイン後にコピー

定義の順序

定義の順序は重要です。ルート パスのエンドポイントを定義する前に StaticFiles をマウントすると、StaticFiles アプリケーションは、エンドポイントで定義されたリクエストも含め、ルート パスへのすべてのリクエストを処理します。

正しい順序での例

定義の正しい順序の例を次に示します。

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse

app = FastAPI()

@app.get("/")
async def index():
    return FileResponse("static/custom.html", media_type="html")

app.mount(
    "/static",
    StaticFiles(directory="static", html=True),
    name="static",
)
ログイン後にコピー

次のようにします。手順を実行すると、静的ファイルの提供に StaticFiles を使用しながら、FastAPI アプリケーションのルート パスでカスタム HTML ファイルを提供できます。

以上がFastAPI と StaticFiles を使用してルート パスで特定の HTML ファイルを提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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