静态文件¶
使用 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 的 fastapi.staticfiles 与 starlette.staticfiles 相同,只是为了方便开发者调用。但实际上,fastapi.staticfiles 直接继承自 Starlette。
什么是挂载¶
挂载是指在路径中添加完全独立的应用,然后用它处理所有子路径。
与 APIRouter 不同,挂载的应用是完全独立的。主应用的 OpenAPI 与 API 文档不包含挂载应用中的内容。
高级用户指南中会介绍更多相关内容。
细节¶
第一个/static是要挂载的子应用的路径。因此,挂载子应用会处理所有以 /static 开头的路径。
directory="static" 是静态文件所在的文件夹。
name="static" 用于指定 FastAPI 内部使用的名称。
这些参数都不必命名为 static,可以按需更改。
更多说明¶
更多细节与选项,详见 Starlette 文档: 静态文件。