gpt4 book ai didi

python - 从 GridFS Python Flask Mongodb 检索和显示图像

转载 作者:行者123 更新时间:2023-12-04 11:36:23 25 4
gpt4 key购买 nike

嗨,我目前正在使用 Python Flask 来存储我的图像,我已经成功地使用 gridfs 将图像存储到 mongodb 中,但现在我不确定如何检索图像。

我知道由于文件很大,它将在 fs.chunks 中分成块。我可以查询结果,因为我为所有图像创建了一个 id 并将其附加到 fs.files,我将只使用 objectID 来查询我的 fs.chunks 集合。然而,在那之后我不知道如何显示图像。

有谁知道如何从 mongodb 的 gridfs 中为 python flask 检索图像。

最佳答案

嗨,所以我找到了一种使用 python flask 从 mongodb 获取图像的方法。

这就是我们配置 mongodb 连接的方式

app = Flask(__name__)
mongo = os.getenv('MONGODB')
client = MongoClient(mongo)
db = client.products_db
products = db.products
grid_fs = gridfs.GridFS(db)

因此,对于第一个代码块,这就是我使用此代码将图像保存在 gridFS 上的方式。我相信使用 grid_fs.put 将返回一个 id,这将允许您从其他 fs.chunks 和 fs.files 调用它
@app.route('/image/', methods = ["POST"])
def saveImage():
if 'image' in request.files:
image = request.files['image']
name = request.form.get('name')
id = grid_fs.put(image, content_type = pimage.content_type, filename = name)
query = {
'id':id,
'name': request.form.get('name'),
'desc':request.form.get('desc'),
}
status = products.insert_one(query)
if status:
return jsonify({'result': 'Image uploaded successfully'}),201
return jsonify({'result': 'Error occurred during uploading'}),500

从 grid_fs 中检索图像。我必须使用 pip install codecs 才能使用编解码器
item = products.find_one({'id': id})
image = grid_fs.get(item['id'])
base64_data = codecs.encode(image.read(), 'base64')
image = base64_data.decode('utf-8')

然后可以使用它在 html 上显示,html 中的图像是从 grid_fs 接收的二进制字符串
<img src = "data:image/png;base64, {{image}}" alt= "myImage"/>

关于python - 从 GridFS Python Flask Mongodb 检索和显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60630359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com