官方文档地址:https://fastapi.tiangolo.com/zh/tutorial/static-files/
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
“挂载”意味着在特定路径中添加一个完整的“独立”应用程序,然后处理所有子路径。
第一个“/static”是指此“子应用程序”将“装入”的子路径。因此,任何以“/static”开头的路径都将由它处理。
directory=“static”指的是包含静态文件的目录的名称。
name=“static”为它提供了一个可以由FastAPI在内部使用的名称。
所有这些参数都可以不同于“静态”,根据您自己应用程序的需要和具体细节进行调整。
示例代码
# -*- coding: UTF-8 -*-
from fastapi import FastAPI, Form
from starlette.requests import Request
from starlette.staticfiles import StaticFiles
from starlette.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory="templates")
app.mount('/static', StaticFiles(directory='static'), name='static')
@app.post("/user/")
async def files(
request: Request,
username: str = Form(...),
password: str = Form(...),
):
print('username', username)
print('password', password)
return templates.TemplateResponse(
'index.html',
{
'request': request,
'username': username,
}
)
@app.get("/")
async def main(request: Request):
return templates.TemplateResponse('signin.html', {'request': request})
if __name__ == '__main__':
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)
示例代码下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/FastAPI_No.6_bootstrap_static.zip