首页 > 其他分享 >三周精通FastAPI:31 使用 StaticFiles从目录中自动提供静态文件

三周精通FastAPI:31 使用 StaticFiles从目录中自动提供静态文件

时间:2024-11-04 13:45:58浏览次数:6  
标签:StaticFiles FastAPI 31 staticfiles static fastapi import

官方文档:静态文件 - FastAPI

静态文件

您可以使用 StaticFiles从目录中自动提供静态文件。

使用StaticFiles

  • 导入StaticFiles
  • "挂载"(Mount) 一个 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 提供了和 starlette.staticfiles 相同的 fastapi.staticfiles ,只是为了方便你,开发者。但它确实来自Starlette。

什么是"挂载"(Mounting)

"挂载" 表示在特定路径添加一个完全"独立的"应用,然后负责处理所有子路径。

这与使用APIRouter不同,因为安装的应用程序是完全独立的。OpenAPI和来自你主应用的文档不会包含已挂载应用的任何东西等等。

你可以在高级用户指南中了解更多。

细节

这个 "子应用" 会被 "挂载" 到第一个 "/static" 指向的子路径。因此,任何以"/static"开头的路径都会被它处理。

directory="static" 指向包含你的静态文件的目录名字。

name="static" 提供了一个能被FastAPI内部使用的名字。

所有这些参数可以不同于"static",根据你应用的需要和具体细节调整它们。

更多信息

更多细节和选择查阅 Starlette's docs about Static Files.

实践

将源码写入static.py文件

​from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()

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

并创建static目录,在目录里写入一个测试文件temp.txt,文件内容:

This is an example text file.

然后浏览网址:

http://127.0.0.1:8000/static/temp.txt

浏览器显示文件内容:

This is an example text file.

测试通过。

标签:StaticFiles,FastAPI,31,staticfiles,static,fastapi,import
From: https://blog.csdn.net/skywalk8163/article/details/143467314

相关文章

  • 基于springboot的CRM客户关系管理系统-计算机毕业设计源码316631
    摘要本论文主要论述了如何使用Java语言开发一个CRM客户关系管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,Springboot框架进行开发。在引言中,作者将论述CRM客户关系管理系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各......
  • 学习记录:STM32G431CBU6的多通道ADC采样串口打印(HAL库)
    一配置  二代码uint16_tGet_adc(){//启动ADC1HAL_ADC_Start(&hadc1);//等待ADC转换完成,超时为100msHAL_ADC_PollForConversion(&hadc1,100);//判断ADC是否转换成功if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC)......
  • 20222310 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    一、实验内容(一)恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软件,......
  • 开关电源中的“神器”-TL431过压保护电路如何计算?
    更多电路设计,PCB设计分享及分析,可关注本人微信公众号“核桃设计分享”!TL431想必大家都不陌生吧!核桃在实际项目中也经常用到这个芯片,好用还便宜,谁不爱和三极管长的很像,千万不要以为他是三极管。那开关电源中的过压保护电路是如何用TL431来实现呢?(注:这里暂时不展开讲解过压自......
  • 2024-2025-1 20241318《计算机基础与程序设计》第六周学习总结
    这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06这个作业的目标<Polya如何解决问题简单类型与组合类型复合数据结构查找与排序算法算法复杂度......
  • 2024-2025-1 20241314《计算机基础与程序设计》第六周学习总结
    学期(如2024-2025-1)20241314《计算机基础与程序设计》第六周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第六周作业这个作业的目标Polya如何解决问题简单类型与组合类型复合数据......
  • FastAPI 路径参数详解:动态路径与数据校验的灵活实现
    FastAPI路径参数详解:动态路径与数据校验的灵活实现本文全面介绍了在FastAPI中使用路径参数的技巧和实现方式。路径参数允许API动态响应不同路径中的请求信息,结合URL(UniformResourceLocator)和URI(UniformResourceIdentifier)进行资源定位和标识。URL是指资源的完......
  • 2024-2025-1 20241312《计算机基础与程序设计》第6周学习总结
    这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第六周作业)这个作业的目标Polya如何解决问题简单类型与组合类型复合数据结构查找与排序算法算法复杂度递归代码......