Как отображать изображения из GridFS в веб-браузере?

#python #html #mongodb #flask #gridfs

#python #HTML #mongodb #flask #gridfs

Вопрос:

Вот как я написал функцию gallery, которая должна отображать изображения, хранящиеся в MongoDB, с использованием GridFS:

 @app.route('/gallery/<username>')
def gallery(username):
    user = db.users.find_one({'username': username})
    images = user['images']
    for img in images:
        image = grid_fs.get(img)
        base64_data = codecs.encode(image.read(), 'base64')
        image = base64_data.decode('utf-8')
    return render_template('gallery.html')
  

Как я должен написать HTML-документ, чтобы фотографии отображались?

Ответ №1:

Сначала вам нужно вернуть данные в шаблон:

 return render_template('gallery.html', **images)
  

И затем вы можете использовать это в своем шаблоне следующим образом:

 {% for img in images %}    
    <img src="data:image/png;base64, {{ img }}">
{% endfor %}