方向不对,努力白费,经验类测试技术才是职场重要保险! | (点击→)【提醒】AI赋能的前提是对常规测试技术非常的熟悉,联系作者vx了解

FastAPI系列(11):静态文件请求

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/19503695

在 Web 开发中,需要请求很多静态资源文件(不是由服务器生成的文件),如 css/js 和图片文件等。

示例

import uvicorn
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

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

if __name__ == '__main__':
    uvicorn.run("static_file:app", port=8001, reload=True)

  

代码解析
  app.mount() 这行代码用于将静态文件目录挂载到 FastAPI 应用中,提供静态文件服务功能。


参数详解

  • 路径映射:"get_static_file" - 静态文件访问的 URL 路径前缀
  • 静态文件配置:StaticFiles(directory="static") - 创建静态文件处理器,指向项目根目录下的 static 文件夹
  • 命名标识:name="static" - 为该静态文件路由分配别名,便于后续引用

工作机制

  • 目录映射:将服务器上 static 目录映射到 /get_static_file URL 路径
  • 文件服务:允许通过 HTTP 请求访问 static 目录中的文件资源
  • 访问方式:用户可通过 /get_static_file/filename 访问具体静态文件

使用示例

  • 假设 static 目录下有 index.html 文件:
  • 实际存储:./static/index.html
  • 访问路径:http://host:port/get_static_file/index.html

 

http://127.0.0.1:8001/get_static_file/test.png

image

 

image

 

http://127.0.0.1:8001/get_static_file/imgs/test.png

image

 

 

补充:name的应用

import uvicorn
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

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


# 使用 name 生成静态文件路径
@app.get("/image")
async def get_image():
    # 通过 name 访问静态文件
    return {"url": app.url_path_for("static", path="imgs/test.png")}


if __name__ == '__main__':
    uvicorn.run("static_file:app", port=8002, reload=True)

  

结果

image

 

posted @ 2026-01-25 19:36  全栈测试笔记  阅读(0)  评论(0)    收藏  举报
浏览器标题切换
浏览器标题切换end