Привет, поэтому я нашел способ получить изображения из mongodb, используя python flask.
Так мы настроили соединение 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 вернет идентификатор, и это позволит вам вызывать его из других файлов 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 для использования кодеков
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"/>