首页 > 解决方案 > 将图像传递给 python FastAPI api 端点

问题描述

我对 apis 很陌生,我有一个问题。我想用它来传递图像并处理它。我认为将其更改为 base64 会有所帮助,我只需将字符串传递给端点。但问题是,在 base64 字符串中,有 '/' 符号会破坏我的网址。有什么想法可以解决它,或者有什么更好的想法吗?

代码很简单:

app = FastAPI()


@app.get("/get_predictions/{base64_str}")
def get_predictions(base64_str: str):
    return get_model_predictions(base64_str)

get_model_predictions 只处理图像并返回它必须返回的内容

标签: pythonapifastapi

解决方案


您可以使用 UploadFile 将文件传递到您的端点。

这是一个例子:

from fastapi import FastAPI, File, UploadFile

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    return {"filename": file.filename}

请注意,在我的示例中,我使用的是 POST 方法而不是 GET。我允许自己为您提供 POST 解决方案,因为您说您想“传递”图像,所以这是通过 POST 路由而不是 GET 完成的

您可以通过查看文档的这一部分了解更多信息: https ://fastapi.tiangolo.com/tutorial/request-files/


推荐阅读