当前位置: 首页 > news >正文

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

 

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

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

示例

import uvicorn
from fastapi import FastAPI
from fastapi.staticfiles import StaticFilesapp = 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 StaticFilesapp = 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

 

http://www.jsqmd.com/news/299324/

相关文章:

  • DAY42:统计前后缀下标Ⅰ+反转链表
  • 大语言模型(LLM)学习原理深度解析:从超级学生到词语社交网络
  • 程序员必看!LoRA大模型微调技术详解:从概念到实践的收藏级教程
  • 强烈安利8个AI论文网站,继续教育学生搞定论文必备!
  • 2025最新大模型面试经验汇总+全套学习资源,小白到大神的进阶之路
  • 基于时空异质性与跨模式交互的多模式交通需求预测:元学习方法详解
  • 转行AI的工程师看过来:Transformer+注意力机制详解,手写可运行PyTorch代码
  • CST License(Flexnet)设置与问题处理方法 - 详解
  • AI大模型面试宝典:全面解析大模型技术,助你轻松应对各类面试问题
  • 大模型时代,构建高质量数据基础设施的五大关键
  • 安全工具篇魔改二开CS消除流量特征Profile请求个性主题反编译去暗桩
  • 为什么程序员都在学大模型?掌握未来AI核心技术的全面指南
  • LLM微调终极指南:第七阶段监控与维护,让AI模型永不失控!【必收藏】
  • 【2026全网首发】AI智能体完全指南:面试必备+大模型开发实战+学习资源全解析
  • 【大学院-筆記試験練習:线性代数和数据结构(16)】
  • 生物医学研究新利器:自我进化LLM智能体架构与实战
  • 【必藏】大模型入门指南:从成本到架构的全景解析,程序员小白必看
  • 小白也能学会!本地大模型全部署教程(Mac+Win)
  • 无监督配准
  • ENSP Pro LAB笔记:配置M-LAG双归接入三层网络(V-STP + Monitor Link + OSPF)
  • 救命神器!MBA开题报告必备TOP8 AI论文平台深度测评
  • AT_abc442_g [ABC442G] Lightweight Knapsack
  • 基于STM32的有害气体检测系统
  • 基于STM32的汽车防盗报警系统设计
  • 基于STM32的电热水器控制系统设计
  • 2026年1月工业清洗与稀释剂厂家推荐榜单:脱漆剂/除蜡水/防锈油/溶剂油/助焊剂/碳氢清洗剂/环保型清洗剂/油墨稀释剂等专业化工产品源头供应
  • 基于STM32的土壤湿度检测系统
  • 基于STM32的多功能智能睡眠枕头
  • 基于STM32的农业大棚环境检测系统的设计与实现
  • 给儿子的金钱信:关于运气、谦逊与“睡个好觉”的权利