首頁  >  文章  >  後端開發  >  如何在 FastAPI 的根路徑中提供自訂 HTML 檔案而不是 index.html?

如何在 FastAPI 的根路徑中提供自訂 HTML 檔案而不是 index.html?

Linda Hamilton
Linda Hamilton原創
2024-11-09 19:59:02606瀏覽

How to Serve Custom HTML Files Instead of index.html in FastAPI's Root Path?

在 FastAPI 根路徑中提供自訂 HTML 文件而不是 Index.html

在 FastAPI 中,您可以使用 StaticFiles 中介軟體提供靜態文件,包括 HTML。但是,使用 StaticFiles 作為根路徑 (/) 可能會導致意外行為,因為它會自動為根目錄提供 index.html。

為什麼提供index.html 而不是自訂HTML

根據[Starlette 文件](https://www.starlette.io/static-files/),StaticFiles 有一個html 選項,設定為True 時,如果存在目錄,則會自動載入目錄的index.html。

解決方案:將StaticFiles 掛載到不同的路徑

要在根路徑上正確渲染自訂HTML 文件,請將StaticFiles 掛載到不同的路徑,例如/static:

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()

app.mount("/static", StaticFiles(directory="static"), name="static")

安裝順序很重要

安裝StaticFiles和定義端點的順序至關重要。如果您在定義根端點後掛載 StaticFiles,則根端點將優先,並將提供自訂 HTML 檔案。

刪除html=True 選項

如果您想提供不同的HTML 檔案動態並具有其他端點,建議從StaticFiles 中刪除html=True 選項並使用FastAPI 的[範本](https: //fastapi.tiangolo.com/templates/) 代替。

結論

透過解決 StaticFiles 的排序和設定問題,您可以在根路徑上提供自訂 HTML 檔案而不是 index.html,同時也啟用其他 API 端點。根據您的具體用例仔細考慮 html=True 選項。

以上是如何在 FastAPI 的根路徑中提供自訂 HTML 檔案而不是 index.html?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn