ホームページ >バックエンド開発 >Python チュートリアル >カスタム HTML ファイルを FastAPI ルート パスとして提供するにはどうすればよいですか?
custom.html などのカスタム HTML ファイルを FastAPI アプリのルート パスとしてレンダリングすることを目的としています。ただし、現在の設定では、代わりにデフォルトの Index.html が返されます。
StaticFiles に関する Starlette のドキュメントで説明されているように:
html - Run in HTML mode. Automatically loads index.html for directories if such file exists.
この問題を解決するには、次の 2 つのオプションがあります。
1. StaticFiles を別のパスにマウントします:
StaticFiles インスタンスを /static などの一意のパスにマウントします。これにより、/static で始まるパスはすべて StaticFiles アプリケーションによって処理されるようになります。
app.mount('/static', StaticFiles(directory='static'), name='static')
2.エンドポイントの後に StaticFiles を定義:
それでも StaticFiles をルート パス (/) にマウントしたい場合は、すべての API エンドポイントを宣言した後に StaticFiles インスタンスを定義します。これにより、エンドポイントが StaticFiles よりも優先されるようになります。
@app.get('/') async def index(): return FileResponse('static/custom.html')
app.mount('/', StaticFiles(directory='static', html=True), name='static')
html=True 引数を使用すると、1 行のコードで静的 Web コンテンツを簡単に提供できます。 。ただし、動的 HTML ファイルと追加の API エンドポイントが必要な場合は、テンプレートを使用し、html=True を使用せずに StaticFiles を別のパスにマウントすることを検討してください。
以上がカスタム HTML ファイルを FastAPI ルート パスとして提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。