コンテンツにスキップ

静的ファイル

StaticFiles を使用して、ディレクトリから静的ファイルを自動的に提供できます。

aiofiles をインストール

まず、aiofiles をインストールする必要があります:

$ pip install aiofiles

---> 100%

StaticFiles の使用

  • StaticFiles をインポート。
  • StaticFiles() インスタンスを生成し、特定のパスに「マウント」。
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()

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

技術詳細

from starlette.staticfiles import StaticFiles も使用できます。

FastAPIは、開発者の利便性のために、starlette.staticfiles と同じ fastapi.staticfiles を提供します。しかし、実際にはStarletteから直接渡されています。

「マウント」とは

「マウント」とは、特定のパスに完全な「独立した」アプリケーションを追加することを意味します。これにより、すべてのサブパスの処理がなされます。

これは、マウントされたアプリケーションが完全に独立しているため、APIRouter とは異なります。メインアプリケーションのOpenAPIとドキュメントには、マウントされたアプリケーションの内容などは含まれません。

これについて詳しくは、高度なユーザーガイド をご覧ください。

詳細

最初の "/static" は、この「サブアプリケーション」が「マウント」されるサブパスを指します。したがって、"/static" から始まるパスはすべてサブアプリケーションによって処理されます。

directory="static" は、静的ファイルを含むディレクトリの名前を指します。

name="static" は、FastAPI が内部で使用できる名前を付けます。

これらのパラメータはすべて「静的」とは異なる場合があり、独自のアプリケーションのニーズと詳細に合わせて調整します。

より詳しい情報

詳細とオプションについては、Starletteの静的ファイルに関するドキュメントを確認してください。