Задать вопрос
@deus97

Как в jinja вывести изображения из бд, если они сохранены в бд в двоичной коде?

Изображение загружается в бд из формы на странице, я пока учусь, и пока единственный способ который я нашел чтобы сохранить картинку это с помощью метода read(), но он переводит изображение в строку, которая и записывается в базу данных, и как я понимаю, эту строку нужно декодировать обратно в картинку.

Как это сделать чтобы декодировалась каждая картинка при итерации объекта categories в jinja?

Или, возможно есть способ проще?

<div class="titles">
		{% for category in categories %}
			<div class="item">
				<img src="{{ category.category_image }}">
				{{ category.category_image }}
				<div class="overlay">
					<p>{{ category.title }}</p>
					
				</div>
			</div>
		{% endfor %}


@app.route("/add_category", methods=['GET', 'POST'])
def create_category():
    if request.method == 'POST':
        title = request.form['title']
        category_image = request.files['category_image']
        category_image = category_image.read()
        category = Category(title=title, category_image=category_image)
        try:
            db.session.add(category)
            db.session.commit()
            return redirect("/")
        except:
            return "Ошибка. Возможно не создана база данных"
    return render_template("/add_category.html")


@app.route("/")
def home():
    categories = Category.query.all()
    return render_template("/home.html", categories=categories)
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Может, сделать отдельный роут, который отдаёт картинку из базы, и при итерации вставлять img со ссылкой на этот роут?
Вообще хранение самих изображений в базе - спорная идея.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы