FastAPI(42)- Static Files 静态资源

安装 aiofiles

pip install aiofiles

  

个人感想

现在都是前后端分离,感觉在 FastAPI 应用程序中直接使用静态资源的可能性不大,只做了解(也不难

 

使用 StaticFiles 访问静态资源

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import HTMLResponse

app = FastAPI()

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


@app.get("/")
def get_login():
    # 返回一段 HTML 代码,导入 js 文件的路径以 /static 为根路径
    html = """
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Title</title>
            <script src="/static/jquery.min.js"></script>
        </head>
        <body>
            12345
        </body>
        </html>
    """
    return HTMLResponse(html)

 

什么是 mount

  • “挂载”意味着在特定路径中添加一个完整的“独立”应用程序,然后负责处理所有子路径
  • 这与使用 APIRouter 不同,因为挂载的应用程序是完全独立的
  • 主应用程序中的 OpenAPI 和文档不会包含来自挂载的应用程序的任何内容

 

解析上面的代码

  • 第一个 /static 指的是这个“子应用程序”将被“安装”到的子路径,因此,任何以 /static 开头的路径都将由它处理
  •  directory="static"  是指包含静态文件的目录的名称,本地目录
  •  name="static"  赋予它一个可以被 FastAPI 内部使用的名称,这里暂时没用到
  • 所有这些参数都可以与 static 不同

 

posted @ 2021-09-29 22:44  小菠萝测试笔记  阅读(694)  评论(0编辑  收藏  举报