【python】fastapi response返回文本、音视频多媒体资源实现
返回HTML
HTMLResponse
是FastAPI中自带的一个响应类,用于返回HTML格式的响应。使用方法如下:
from fastapi import FastAPI, HTMLResponse
app = FastAPI()
@app.get("/", response_class=HTMLResponse)
async def read_root():
html_content = """
<!DOCTYPE html>
<html>
<head>
<title>FastAPI HTMLResponse Example</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
"""
return html_content
在上面的例子中,我们在装饰器中指定了response_class=HTMLResponse
,表示我们需要返回一个HTML响应。然后在函数中,我们返回了一个HTML格式的字符串。FastAPI会自动将这个字符串封装成一个HTMLResponse
对象,并设置 Content-Type
为 text/html
,将其返回给客户端。
返回图片
返回图片,可以使用FileResponse
类。FileResponse
类是FastAPI提供的专门用于返回文件的Response类。可以使用FileResponse
类将图片文件作为响应返回给客户端。
示例代码:
from fastapi import FastAPI
from fastapi.responses import FileResponse
app = FastAPI()
@app.get("/image")
async def get_image():
filename = "path/to/image.jpg"
return FileResponse(filename, media_type="image/jpeg")
在这个例子中,我们使用FileResponse
类返回了一张图片。FileResponse
类的第一个参数是文件的路径,第二个参数(media_type
)是文件的MIME类型。在这个例子中,我们指定了图片的MIME类型为image/jpeg
。
返回音频
返回音频时,需要设置正确的media_type
,通常为audio/mpeg
或audio/wav
,具体取决于音频文件的格式。可以通过FileResponse
的media_type
参数来设置,例如:
from fastapi import FastAPI
from fastapi.responses import FileResponse
app = FastAPI()
@app.get("/audio")
async def get_audio():
return FileResponse("audio.mp3", media_type="audio/mpeg")
在上述代码中,我们返回了名为audio.mp3
的音频文件,并且将media_type
设置为audio/mpeg
。
返回视频
视频通常返回的是视频文件的二进制数据,需要设置media_type
为视频格式的MIME类型。以下是返回视频文件的示例代码:
from fastapi import FastAPI, Response
from fastapi.responses import FileResponse
app = FastAPI()
@app.get("/video")
def read_video():
video_path = "path/to/video.mp4"
return FileResponse(video_path, media_type="video/mp4")
其中,FileResponse
会使用media_type
参数来设置响应的MIME类型。在这个例子中,我们将media_type
设置为video/mp4
,表示返回的是一个MP4格式的视频文件。
返回PDF
使用 media_type='application/pdf'
来返回 PDF 文件。下面是一个示例代码:
from fastapi import FastAPI
from fastapi.responses import FileResponse
app = FastAPI()
@app.get("/download-pdf")
async def download_pdf():
file_path = "/path/to/pdf/file.pdf"
return FileResponse(file_path, media_type='application/pdf', filename="file.pdf")
其中,/path/to/pdf/file.pdf
是 PDF 文件在本地的路径,filename="file.pdf"
是下载下来的文件的名称。
总结
media | 解释 |
---|---|
HTMLResponse | 返回HTML |
image/jpeg | 返回图片 |
audio/mpeg | 返回音频 |
video/mp4 | 返回视频 |
application/pdf | 返回PDF |
相关文章
- python后端面试第六部分:git版本控制--长期维护
- python使用PIL处理图片后返回给前端的坑
- Open3D 点云旋转的轴角表示法(python详细过程版)
- Atitit web httphandler的实现 java python node.js c# net php 目录 1.1. Java 过滤器 servelet1 1.2. Python的
- Python编程:利用python编程实现对基于时间序列的数据(dataframe格式)按照指定时间范围进行单方向关联,不存在的日期补充为默认的NaN
- Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断
- Python编程语言学习:python编程语言中重要函数讲解之map函数等简介、使用方法之详细攻略
- Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化
- Python:利用python语言实现18位身份证号码和15位身份证号码相互转换
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Listbox/Scrollbar)
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)
- Python:利用python编程实现三维图像绘制展示(六面体旋转、三维球柱状体、下雪场景等)
- Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略
- 《看漫画学Python》1、2版分享,python最佳入门教程,中学生用业余时间都能学会,北大教授看完都这样定义它
- 整理了46个python人工智能库,详细介绍(含资源),建议收藏
- 没附上语音包资源的python文字转语音
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- 太实用了,Schedule模块, Python 周期任务神器
- python基础===八大排序算法的 Python 实现
- 【python】Python实现网络爬虫demo实例
- 【Python】3.python实现图片上传到阿里云OSS